9 авг. 2009 г.

Skype, Debian, amd64 и libuuid1

Только вчера заявил, что проблемы перехода от 32-битной архитектуры на 64-битную меня не коснулись, как у меня перестал работать скайп. Что бы я ни делал, он упорно писал:

$ skype
/usr/bin/skype: error while loading shared libraries: libuuid.so.1: cannot open shared object file: No such file or directory


Произошло это вчера после обновления пакета ia32-libs. Полдня гуглил, искал выискивал, читал перечитывал – никакого результата. Все ссылки вели к объяснению того, что нужно сказать --force-architecture после apt-get install, или aptitude install, или dpkg -i. Всё это хорошо и понятно, но это не помогало.

Но потом как-то нечаянно нашёл я одно позавчерашнее обсуждение (к сожалению, ссылку уже не вспомню), где люди столкнулись с точно такой же проблемой. Один небольшой ответ поставил всё на свои места.

Сам файл libuuid.so.1 в системе есть, находится в директории /lib и является символической ссылкой на /lib/libuuid.so.1.2. Кроме того, есть в корне файловой системы символическая ссылка /lib64, которая ссылается как раз на /lib. Но этот файл всё равно не находился.

Дело в том, что skype – 32-битное приложение, поэтому запускается он в режиме эмуляции через chroot, где вместо /lib64 используется /lib32. А вот файла /lib32/libuuid.so.1 как раз и не было.

Решение



1. Нужно скачать пакет libuuid1_1.41.3-1_i386.deb (или какая там последняя версия):

$ mkdir uuid; cd uuid
$ wget -c http://ftp.us.debian.org/debian/pool/main/e/e2fsprogs/libuuid1_1.41.3-1_i386.deb


2. Распаковать содержимое пакета:

$ mkdir libuuid1_1.41.3-1_i386
$ dpkg-deb -x libuuid1_1.41.3-1_i386.deb ./libuuid1_1.41.3-1_i386
$ $ ls -la ./libuuid1_1.41.3-1_i386/lib/
итого 24
drwxr-xr-x 2 andrei andrei 4096 Окт 13 2008 .
drwxr-xr-x 4 andrei andrei 4096 Окт 13 2008 ..
lrwxrwxrwx 1 andrei andrei 14 Авг 9 19:08 libuuid.so.1 -> libuuid.so.1.2
-rw-r--r-- 1 andrei andrei 12912 Окт 13 2008 libuuid.so.1.2


3. В директории ./libuuid1_1.41.3-1_i386/lib/ мы видим два файла, которые нужно переписать в /lib32:

$ sudo cp libuuid1_1.41.3-1_i386/lib/* /lib32/


Теперь должно работать.

:)

Комментариев нет:

Отправить комментарий