Weblog entry #1 for figjam

Skype on AMD64 Unstable
Posted by figjam on Thu 21 Dec 2006 at 01:16
Tags: ,
I recently upgraded to a Core 2 Duo and wanted to use Skype. After not being able to find a 64 bit version, I found a few references to getting it going by force installing the 32 bit version and manually installing the libraries in /usr/lib32.

First download the latest debian package from http://www.skype.com/go/getskype-linux-deb, then run
sudo dpkg -i --force-architecture packagename (debian-1.3.0.53-1_i386.deb in my case).

What I actually did was to then run skype from a terminal and do a "dlocate -S" ("dpkg -S" if you don't have dlocate installed) on the library file it complained about. Luckily I had most of the 64 bit versions installed so it was a simple matter of finding and downloading the i386 version of the package using http://www.debian.org/distrib/packages#search_packages. You could use http://www.debian.org/distrib/packages#search_contents if you don't have the package locally. I just kept repeating the process until skype ran and didn't complain.

What follows will hopefully save you all that trouble. The libraries I had to install came from the following packages:

libasound2 libqt3-mt libxext6 libx11-6 libstdc++5 libgcc1 libfontconfig1 libaudio2 libxt6 libjpeg62 libpng12-0 zlib1g libxi6 libxrender1 libxrandr2 libxcursor1 libxinerama1 libxft2 libfreetype6 libsm6 libice6 libstdc++6 libxau6 libxdmcp6 libexpat1 libxfixes3

The process was:

cd ~
download all the packages
mkdir Temp
cd Temp

ar -x ../libasound2_1.0.13-1_i386.deb
tar zxf data.tar.gz ./usr/lib/libasound.so.2 ./usr/lib/libasound.so.2.0.0

ar -x ../libqt3-mt_3.3.7-1_i386.deb
tar zxf data.tar.gz ./usr/lib/libqt-mt.so.3 ./usr/lib/libqt-mt.so.3.3.7

ar -x ../libxext6_1.0.1-2_i386.deb
tar zxf data.tar.gz ./usr/lib/libXext.so.6.4.0 ./usr/lib/libXext.so.6

ar -x ../libx11-6_1.0.3-4_i386.deb
tar zxf data.tar.gz ./usr/lib/libX11.so.6.2.0 ./usr/lib/libX11.so.6

ar -x ../libstdc++5_3.3.6-13_i386.deb
tar zxf data.tar.gz ./usr/lib/libstdc++.so.5.0.7 ./usr/lib/libstdc++.so.5

ar -x ../libgcc1_4.1.1-21_i386.deb
tar zxf data.tar.gz ./lib/libgcc_s.so.1

ar -x ../libfontconfig1_2.4.2-1_i386.deb
tar zxf data.tar.gz ./usr/lib/libfontconfig.so.1.2.0 ./usr/lib/libfontconfig.so.1

ar -x ../libaudio2_1.8-2_i386.deb
tar zxf data.tar.gz ./usr/lib/libaudio.so.2.4 ./usr/lib/libaudio.so.2

ar -x ../libjpeg62_6b-13_i386.deb
tar zxf data.tar.gz ./usr/lib/libjpeg.so.62.0.0 ./usr/lib/libjpeg.so.62

ar -x ../libpng12-0_1.2.15~beta5-0_i386.deb
tar xzf data.tar.gz ./usr/lib/libpng12.so.0.15.0 ./usr/lib/libpng12.so.0

ar -x ../zlib1g_1.2.3-13_i386.deb
tar zxf data.tar.gz ./usr/lib/libz.so.1.2.3 ./usr/lib/libz.so.1

ar -x ../libxi6_1.0.1-4_i386.deb
tar zxf data.tar.gz ./usr/lib/libXi.so.6.0.0 ./usr/lib/libXi.so.6

ar -x ../libxrender1_0.9.1-3_i386.deb
tar zxf data.tar.gz ./usr/lib/libXrender.so.1.3.0 ./usr/lib/libXrender.so.1

ar -x ../libxrandr2_1.1.0.2-5_i386.deb
tar zxf data.tar.gz ./usr/lib/libXrandr.so.2.0.0 ./usr/lib/libXrandr.so.2

ar -x ../libxcursor1_1.1.7-4_i386.deb
tar zxf data.tar.gz ./usr/lib/libXcursor.so.1.0.2 ./usr/lib/libXcursor.so.1

ar -x ../libxinerama1_1.0.1-4.1_i386.deb
tar zxf data.tar.gz ./usr/lib/libXinerama.so.1.0.0 ./usr/lib/libXinerama.so.1

ar -x ../libxft2_2.1.8.2-8_i386.deb
tar zxf data.tar.gz ./usr/lib/libXft.so.2.1.2 ./usr/lib/libXft.so.2

ar -x ../libfreetype6_2.2.1-5_i386.deb
tar zxf data.tar.gz ./usr/lib/libfreetype.so.6 ./usr/lib/libfreetype.so.6.3.10

ar -x ../libsm6_1.0.1-3_i386.deb
tar zxf data.tar.gz ./usr/lib/libSM.so.6.0.0 ./usr/lib/libSM.so.6

ar -x ../libice6_1.0.1-2_i386.deb
tar zxf data.tar.gz ./usr/lib/libICE.so.6.3.0 ./usr/lib/libICE.so.6

ar -x ../libstdc++6_4.1.1-21_i386.deb
tar zxf data.tar.gz ./usr/lib/libstdc++.so.6 ./usr/lib/libstdc++.so.6.0.8

ar -x ../libxau6_1.0.1-2_i386.deb
tar zxf data.tar.gz ./usr/lib/libXau.so.6.0.0 ./usr/lib/libXau.so.6

ar -x ../libxdmcp6_1.0.1-2_i386.deb
tar zxf data.tar.gz ./usr/lib/libXdmcp.so.6.0.0 ./usr/lib/libXdmcp.so.6

ar -x ../libexpat1_1.95.8-3.4_i386.deb
tar zxf data.tar.gz ./usr/lib/libexpat.so.1 ./usr/lib/libexpat.so.1.0.0

ar -x ../libxfixes3_4.0.1-5_i386.deb
tar zxf data.tar.gz ./usr/lib/libXfixes.so.3.1.0 ./usr/lib/libXfixes.so.3

sudo cp -d usr/lib/* /usr/lib32/
sudo cp -d lib/* /usr/lib32/

The "-d" is important to preserve the symlinks.

 

Comments on this Entry

Posted by ajt (204.193.xx.xx) on Thu 21 Dec 2006 at 09:39
[ Send Message | View Weblogs ]
There is also the ia32 package that provides a wide range of Intel 32-bit libraries, which is essentially what you are doing,

--
"It's Not Magic, It's Work"
Adam

[ Parent | Reply to this comment ]

Posted by figjam (222.154.xx.xx) on Fri 22 Dec 2006 at 23:12
[ Send Message | View figjam's Scratchpad | View Weblogs ]
Cool! I didn't know about that and it also led me to the 32 bit versions of libasound2, libgcc1, zlib1g and libstdc++6. Using ia32-libs will save a lot of searching, downloading and copying, but you will also need to install lib32asound2, lib32gcc1 , lib32stdc++6 and lib32z1. The libraries for libaudio2 and libqt3-mt are also missing and since I couldn't find lib32 packages for them I guess we're stuck with downloading and manually installing them.

Currently the only application I run requiring these libraries is Skype, so I still prefer to manually install the libraries from ia32-libs, as it contains about 15MB of files. I don't need most of them and I'm paranoid from way back.

In checking out ia32-libs I also learned that /usr/lib32 is a symlink to /emul/ia32-linux/usr/lib, which is the base directory ia32-libs installs its files to. This means that if you're paranoid like me, and feeling brave, you can work from the root directory and skip the copying steps.

If you don't mind the extra libraries you should only have to run:
apt-get install ia32-libs lib32asound2 lib32gcc1 lib32stdc++6 lib32z1
You will also have to download and install the i386 versions of libaudio2 and libqt3-mt as per my original entry.

If you want to manually install just the libraries you need then the following should work:
apt-get install lib32asound2 lib32gcc1 lib32stdc++6 lib32z1

Download ia32-libs from http://packages.debian.org/unstable/libs/ia32-libs to your home directory.
cd ~ ar -x ia32-libs_1.18_amd64.deb cd /
tar zxf ~/data.tar.gz ./emul/ia32-linux/usr/lib/libexpat.so.1 \
./emul/ia32-linux/usr/lib/libexpat.so.1.0.0 \
./emul/ia32-linux/usr/lib/libfontconfig.so.1 \
./emul/ia32-linux/usr/lib/libfontconfig.so.1.1.0 \
./emul/ia32-linux/usr/lib/libfreetype.so.6 \
./emul/ia32-linux/usr/lib/libfreetype.so.6.3.10 \
./emul/ia32-linux/usr/lib/libICE.so.6 \
./emul/ia32-linux/usr/lib/libICE.so.6.3.0 \
./emul/ia32-linux/usr/lib/libjpeg.so.62 \
./emul/ia32-linux/usr/lib/libjpeg.so.62.0.0 \
./emul/ia32-linux/usr/lib/libpng12.so.0 \
./emul/ia32-linux/usr/lib/libpng12.so.0.1.2.8 \
./emul/ia32-linux/usr/lib/libSM.so.6 \
./emul/ia32-linux/usr/lib/libSM.so.6.0.0 \
./emul/ia32-linux/usr/lib/libstdc++.so.5 \
./emul/ia32-linux/usr/lib/libstdc++.so.5.0.7 \
./emul/ia32-linux/usr/lib/libX11.so.6 \
./emul/ia32-linux/usr/lib/libX11.so.6.2.0 \
./emul/ia32-linux/usr/lib/libXau.so.6 \
./emul/ia32-linux/usr/lib/libXau.so.6.0.0 \
./emul/ia32-linux/usr/lib/libXcursor.so.1 \
./emul/ia32-linux/usr/lib/libXcursor.so.1.0.2 \
./emul/ia32-linux/usr/lib/libXdmcp.so.6 \
./emul/ia32-linux/usr/lib/libXdmcp.so.6.0.0 \
./emul/ia32-linux/usr/lib/libXext.so.6 \
./emul/ia32-linux/usr/lib/libXext.so.6.4.0 \
./emul/ia32-linux/usr/lib/libXfixes.so.3 \
./emul/ia32-linux/usr/lib/libXfixes.so.3.1.0 \
./emul/ia32-linux/usr/lib/libXft.so.2 \
./emul/ia32-linux/usr/lib/libXft.so.2.1.2 \
./emul/ia32-linux/usr/lib/libXinerama.so.1 \
./emul/ia32-linux/usr/lib/libXinerama.so.1.0.0 \
./emul/ia32-linux/usr/lib/libXi.so.6 \
./emul/ia32-linux/usr/lib/libXi.so.6.0.0 \
./emul/ia32-linux/usr/lib/libXrandr.so.2 \
./emul/ia32-linux/usr/lib/libXrandr.so.2.0.0 \
./emul/ia32-linux/usr/lib/libXrender.so.1 \
./emul/ia32-linux/usr/lib/libXrender.so.1.3.0 \
./emul/ia32-linux/usr/lib/libXt.so.6 \
./emul/ia32-linux/usr/lib/libXt.so.6.0.0

Repeat the process from my original entry for libaudio2 and libqt3-mt.

[ Parent | Reply to this comment ]

Posted by ajt (195.112.xx.xx) on Sat 23 Dec 2006 at 11:06
[ Send Message | View Weblogs ]
Gad you found the package useful.

I started with this document:

https://alioth.debian.org/docman/view.php/30192/21/debian-amd64-h owto.html

I'm running a 32-bit chroot and I have the ia32-libs installed. Possibly I don't need both anymore. Since OO.o came out in native 64-bit I've less need for the 32-bit chroot anymore.

--
"It's Not Magic, It's Work"
Adam

[ Parent | Reply to this comment ]

Posted by Anonymous (124.191.xx.xx) on Fri 26 Jan 2007 at 09:50
Very quickly, like others, skype was about the only app I missed (and flash) when converting from 32 to 64 with debian.

I just did;
apt-get install ia32-libs

the untarred the "Static binary tar.bz2 with Qt compiled in" download from skype into /usr/local/games/

I know it isn't a game, but it's a nice place to put a directory like skype-1.3.0.53 that hopefully I won't need in the long term.

This works for me.

[ Parent | Reply to this comment ]

Posted by Anonymous (67.100.xx.xx) on Sat 19 Apr 2008 at 05:10
Hi, I second this. It is this easy! No need for any other steps! However, the most recent version of Skype to run this way is skype_static-1.4.0.74

skype_static-2.0.0.68 does not run.

[ Parent | Reply to this comment ]

Posted by Anonymous (201.252.xx.xx) on Sat 22 Sep 2007 at 00:08
I got tired of repeating the process of running skype, noting the missing lib, searching for it, downloading the .deb file, untaring and copying. So after about seven times doing the above, I wrote a small script to do it all for me. The script installs one missing library each time it is called. Of course, I ran it once, it installed the last missing lib, skype opened up and I was done! So I ended up investing half an hour writing a script to avoid wasting 45 more seconds. ;)

Here's the script:

#!/bin/bash
lib=`skype 2>&1 | awk '{print $7}' | cut -d':' -f1`
echo "lib: $lib"
pkg=`dpkg -S $lib | awk '{print $1}' | cut -d':' -f1 | sort -u`
url=`wget -qO- http://packages.debian.org/lenny/$pkg/i386/download | awk '/ftp\.br\.debian\.org/' | cut -d'"' -f2`
file=`echo $url | awk '{n=split($0,a,"/"); print a[n]}'`
if [ ! -f deb/$file ]; then
  wget -q $url
  mv $file deb
fi
ar -x deb/$file
libfile=`tar ztf data.tar.gz | grep ${lib}$`
tar zxf data.tar.gz $libfile
sudo cp -d $libfile /usr/lib32/
if ls -l $libfile | grep -qF ' -> '; then
  lnlib=`ls -l $libfile | awk '{print $10}' | cut -d':' -f1`
  libfile2=`tar ztf data.tar.gz | grep ${lnlib}$`
  tar zxf data.tar.gz $libfile2
  sudo cp -d $libfile2 /usr/lib32/
fi

[ Parent | Reply to this comment ]

Posted by Anonymous (84.203.xx.xx) on Sun 23 Sep 2007 at 19:05
Nice script

I've just had to replace the ar -x deb/$file by ar -x deb to get it to run

[ Parent | Reply to this comment ]

Posted by Anonymous (201.230.xx.xx) on Fri 25 Apr 2008 at 02:20
If for some reason you have problems with that nice script but installed the ia32packages. There are still some remaining packages you have to download manually: libpcre3, libglib2, libselinux1

And let me confirm that I have skype 2.0 running perfectly in my amd64.

Blessings!

[ Parent | Reply to this comment ]

User Login

Username:

Password:

[ Advanced Login ]

Register Account

Quick Site Search