taming Ubuntu packages 32/64
By walterbays on Dec 12, 2007
Thought you had escaped the old package dependency trap? Ubuntu and other Debian derived systems have nice package managers that automate all the dependency checking. But frequently they don't work because I have a 64-bit AMD Athlon and I get errors like this one for Skype:
package architecture (i386) does not match system (amd64)
Of course amd64 runs i386 just fine, but try telling that to the package manager. Well, if you run dpkg manually you can use the --force-architecture flag, but then it's up to you to sort out all the package dependencies. Worse, when you seem to have all the required libraries the executable may fail to run because a dynamic library is only available in 64-bit version and it wants 32-bit.
I finally got Skype running by tracking down all the required 32-bit libraries from http://packages.ubuntu.com/. But it seems there is a tool to make it much easier to manage a 64-bit Ubuntu in a world of 32-bit applications: getlibs. This utility examines an executable and finds all needed libraries. Thanks to Shameel Arafin for his posting that led me to this valuable information.
Indulging myself in a moment of grumpiness: I never have these problems in Solaris! Not on SPARC, nor on x86, nor on amd64. Indeed I never even have to think about whether I'm on SPARC, x86, amd64, or intel64. Grumpiness over, I still like Ubuntu a lot.
Update: Don't fool around with --force-architecture too much on system libraries. My PC wouldn't wake up. Networking and X were trashed, and I reinstalled the OS - quicker fix than troubleshooting. I guess Linux doesn't keep multiple versions of dynamic libraries like Solaris does, and if you get the wrong one you're in for trouble. I expect the getlibs utility, had I found it first, would have saved me from this. And yes, I still like Ubuntu.