Pull to refresh

Как я ставил новый Skype

Reading time4 min
Views12K
Понадобилось мне поставить skype. Система — debian testing, amd64. Поскольку в репозиториях скайпа нет, было решено поискать его на офсайте.
skype.com -> Download показало множество вариантов на любой вкус и цвет. Только вот Debian'а для amd64 там не оказалось. Зато оказался некий 'static', который и был тут же слит и распакован:

ineu@ineu ~ % tar xjpf skype_static-2.1.0.47.tar.bz2
ineu@ineu ~ % cd skype_static-2.1.0.47/


и запущен:

ineu@ineu skype_static-2.1.0.47 % ./skype
./skype: error while loading shared libraries: libgthread-2.0.so.0: cannot open shared object file: No such file or directory


Вопрос № 1 — о каких shared libraries идет речь, если это якобы статическая линковка?

ineu@ineu skype_static-2.1.0.47 % ldd skype
    linux-gate.so.1 =>  (0xf7f71000)
    libasound.so.2 => /usr/lib32/libasound.so.2 (0xf7e90000)
    libXv.so.1 => /usr/lib32/libXv.so.1 (0xf7e8b000)
    libXss.so.1 => /usr/lib32/libXss.so.1 (0xf7e87000)
    libSM.so.6 => /usr/lib32/libSM.so.6 (0xf7e7f000)
    libICE.so.6 => /usr/lib32/libICE.so.6 (0xf7e67000)
    libXi.so.6 => /usr/lib32/libXi.so.6 (0xf7e5e000)
    libXrender.so.1 => /usr/lib32/libXrender.so.1 (0xf7e55000)
    libXrandr.so.2 => /usr/lib32/libXrandr.so.2 (0xf7e4e000)
    libfreetype.so.6 => /usr/lib32/libfreetype.so.6 (0xf7dd6000)
    libfontconfig.so.1 => /usr/lib32/libfontconfig.so.1 (0xf7dab000)
    libXext.so.6 => /usr/lib32/libXext.so.6 (0xf7d9d000)
    libX11.so.6 => /usr/lib32/libX11.so.6 (0xf7c81000)
    libz.so.1 => /usr/lib32/libz.so.1 (0xf7c6c000)
    libgthread-2.0.so.0 => not found
    libglib-2.0.so.0 => not found
    librt.so.1 => /lib32/librt.so.1 (0xf7c63000)
    libdl.so.2 => /lib32/libdl.so.2 (0xf7c5f000)
    libpthread.so.0 => /lib32/libpthread.so.0 (0xf7c47000)
    libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf7b57000)
    libm.so.6 => /lib32/libm.so.6 (0xf7b32000)
    libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf7b07000)
    libc.so.6 => /lib32/libc.so.6 (0xf79b2000)
    libuuid.so.1 => /lib32/libuuid.so.1 (0xf79ae000)
    libexpat.so.1 => /usr/lib32/libexpat.so.1 (0xf7988000)
    libXau.so.6 => /usr/lib32/libXau.so.6 (0xf7984000)
    libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf796b000)
    /lib/ld-linux.so.2 (0xf7f72000)
    libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf7966000)


Или я неправильно понимаю смысл слова static…
Для пробы слил dynamic с офсайта же:

ineu@ineu ~ % tar xjpf skype-2.1.0.47.tar.bz2
ineu@ineu ~ % cd skype-2.1.0.47
ineu@ineu skype-2.1.0.47 % ./skype
./skype: error while loading shared libraries: libQtDBus.so.4: cannot open shared object file: No such file or directory
ineu@ineu skype-2.1.0.47 % ldd skype
    linux-gate.so.1 =>  (0xf7f47000)
    libasound.so.2 => /usr/lib32/libasound.so.2 (0xf7e66000)
    libXv.so.1 => /usr/lib32/libXv.so.1 (0xf7e61000)
    libXss.so.1 => /usr/lib32/libXss.so.1 (0xf7e5d000)
    librt.so.1 => /lib32/librt.so.1 (0xf7e55000)
    libQtDBus.so.4 => not found
    libQtGui.so.4 => not found
    libQtNetwork.so.4 => not found
    libQtCore.so.4 => not found
    libpthread.so.0 => /lib32/libpthread.so.0 (0xf7e3c000)
    libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf7d4c000)
    libm.so.6 => /lib32/libm.so.6 (0xf7d28000)
    libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf7cfd000)
    libc.so.6 => /lib32/libc.so.6 (0xf7ba7000)
    libdl.so.2 => /lib32/libdl.so.2 (0xf7ba3000)
    libX11.so.6 => /usr/lib32/libX11.so.6 (0xf7a87000)
    libXext.so.6 => /usr/lib32/libXext.so.6 (0xf7a79000)
    /lib/ld-linux.so.2 (0xf7f48000)
    libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf7a60000)
    libXau.so.6 => /usr/lib32/libXau.so.6 (0xf7a5c000)
    libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf7a57000)


Вопрос № 2 — в чем разница между static и dynamic в понятии скайпа? Судя по зависимостям — только в кутэшных библиотеках. Причем в README ни той, ни другой версии этого не указано.

Попробуем еще раз, на этот раз с пакетом для 'Ubuntu 8.10+ 64-bit':

ineu@ineu ~ % sudo dpkg -i skype-ubuntu-intrepid_2.1.0.47-1_amd64.deb
Выбор ранее не выбранного пакета skype.
(Чтение базы данных ... на данный момент установлено 166947 файлов и каталогов.)
Распаковывается пакет skype (из файла skype-ubuntu-intrepid_2.1.0.47-1_amd64.deb)...
Настраивается пакет skype (2.1.0.47-1) ...
Обрабатываются триггеры для desktop-file-utils ...


Установился без конфликтов зависимостей, запускаем:

ineu@ineu ~ % skype
skype: error while loading shared libraries: libQtDBus.so.4: cannot open shared object file: No such file or directory


Не установлена нужная библиотека?

ineu@ineu ~ % dlocate libQtDBus.so.4
libqt4-dbus: /usr/lib/libQtDBus.so.4.5.2
libqt4-dbus: /usr/lib/libQtDBus.so.4
libqt4-dbus: /usr/lib/libQtDBus.so.4.5


Библиотека установлена, но скайп ее почему-то не находит. Проверим:

ineu@ineu ~ % ldd `which skype`
    linux-gate.so.1 =>  (0xf7f42000)
    libasound.so.2 => /usr/lib32/libasound.so.2 (0xf7e61000)
    libXv.so.1 => /usr/lib32/libXv.so.1 (0xf7e5c000)
    libXss.so.1 => /usr/lib32/libXss.so.1 (0xf7e58000)
    librt.so.1 => /lib32/librt.so.1 (0xf7e50000)
    libQtDBus.so.4 => not found
    libQtGui.so.4 => not found
    libQtNetwork.so.4 => not found
    libQtCore.so.4 => not found
    libpthread.so.0 => /lib32/libpthread.so.0 (0xf7e37000)
    libstdc++.so.6 => /usr/lib32/libstdc++.so.6 (0xf7d47000)
    libm.so.6 => /lib32/libm.so.6 (0xf7d23000)
    libgcc_s.so.1 => /usr/lib32/libgcc_s.so.1 (0xf7cf8000)
    libc.so.6 => /lib32/libc.so.6 (0xf7ba2000)
    libdl.so.2 => /lib32/libdl.so.2 (0xf7b9e000)
    libX11.so.6 => /usr/lib32/libX11.so.6 (0xf7a82000)
    libXext.so.6 => /usr/lib32/libXext.so.6 (0xf7a74000)
    /lib/ld-linux.so.2 (0xf7f43000)
    libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf7a5b000)
    libXau.so.6 => /usr/lib32/libXau.so.6 (0xf7a57000)
    libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf7a52000)


Похоже, библиотека этой якобы 64битной версии нужна 32битная. Что за ерунда?

ineu@ineu ~ % readelf -h `which skype` | grep Machine
  Machine:                           Intel 80386


А версия-то вовсе не 64битная…
Вопрос № 3 — что это за пакет для amd64, который содержит 32битный бинарник и зависит от 32битных библиотек?

Остальные варианты не стал даже пробовать — очевидно, что все они для 32битных систем. Доставлять 32битные версии всех нужных ему библиотек совсем не хочется. Deb якобы для amd64 и static возложенных на них ожиданий не оправдали. Ничего не говорю о 4й версии под Винду и всего лишь 2й под Линух, портирование с платформы на платформу — штука непростая. Но неужели трудно хотя бы _на самом деле_ собрать пакет под amd64?
Попытка поставить предыдущую версию (не-бету) успехом также не увенчалось, поскольку непонятно, где ее искать. На офсайте упоминаний о ней я не нашел, а ссылки из многочисленных howto в интернетах теперь ведут на ту же самую последнюю бета-версию. Вот такая вот дружелюбная штука — скайп…
Tags:
Hubs:
Total votes 19: ↑8 and ↓11-3
Comments36

Articles