Saturday, July 07, 2007

Nerd Food: Skype on Feisty AMD64

Yet another Feisty adventure, another one worth documenting in the hope it will save someone else's time. As all AMD64 users know, we're the underdogs of the Linux world. Actually, that's me playing the victim. Its not that bad in terms of open source applications - pretty much everything that works on i386 works equally well on AMD64. The problem is with the commercial applications. For me, the key annoyances are flash and skype. Until recently I had solved my problems via the chroot root (pardon the pun), but after upgrading to Feisty - a few days after, I hasten to add - and setting up wireless with WPA (a mission I never found the time to blog about, I'm afraid), for some unexplained reason, my chroot lost all network access. Not just wireless, mind you, wired as well. This was rather unfortunate, as there is very few things you can do with skype in the absence of a network. Instead of troubleshooting the chroot - the pain just seemed far to great - I decided to look for alternatives. One such alternative is explained here. Basically, it makes use of the ia32 libs. So the steps are:

1. Install the ia32 libs package in Feisty.
2. Download the skype static binary. I used this one.
3. Do an ldd on the binary, grepping for "not found". Note: if you skipped step one, ldd will produce a message similar to "command not found". This got me for a little while.

$ ldd ./skype | grep not

4. Download all the missing packages from ubuntu. In my case all I had to get was:

libasound2_1.0.13-1ubuntu5_i386.deb

libsigc++-2.0-0c2a_2.0.17-2build1_i386.deb
libxcursor1_1.1.8-1_i386.deb
libxfixes3_4.0.3-1_i386.deb

5. Unpack the libraries to a temporary directory:

ar -x libasound2_1.0.13-1ubuntu5_i386.deb
rm control.tar.gz
rm debian-binary
tar -zxf data.tar.gz
rm data.tar.gz
...

6. When you finish unpacking them all, you should end up with a usr directory, and inside of it a lib directory. Go to it, and, as root, copy all the contents to /usr/lib32. You may have to redo all the symlinks.

7. Run ldconfig. If, like me, you missed step 6 ldconfig will complain about the symlinks. I ended up making hard copies, so I had to delete the hard copies and re-symlink by hand.

8. As root, copy your new skype to a sane location such as /usr/local/skype.

9. Create a launcher on the destop. Suggested command:

/usr/bin/linux32 /usr/local/skype/skype

That's it! Certainly easier than a chroot...

No comments: