Почему в Skype так много 32-битных зависимостей?

16

При установке Skype, работает ли он (после включения репозитория партнера):

sudo apt-get install skype

Или установить его из .debфайла, который вы получаете с сайта Skype. Я всегда нахожу, что всегда нужно установить большое количество 32-битных зависимостей:

  gstreamer1.0-plugins-base:i386 libasound2:i386 libasound2-plugins:i386
  libasyncns0:i386 libaudio2:i386 libavahi-client3:i386
  libavahi-common-data:i386 libavahi-common3:i386 libcdparanoia0:i386
  libcups2:i386 libdbus-1-3:i386 libdbusmenu-qt2:i386 libflac8:i386
  libfontconfig1:i386 libfreetype6:i386 libglib2.0-0:i386 libglu1-mesa:i386
  libgmp10:i386 libgnutls-deb0-28:i386 libgssapi-krb5-2:i386
  libgstreamer-plugins-base1.0-0:i386 libgstreamer1.0-0:i386 libhogweed4:i386
  libice6:i386 libicu55:i386 libjack-jackd2-0:i386 libjbig0:i386
  libjpeg-turbo8:i386 libjpeg8:i386 libjson-c2:i386 libk5crypto3:i386
  libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 liblcms2-2:i386
  libmng2:i386 libmysqlclient18:i386 libnettle6:i386 libogg0:i386
  liborc-0.4-0:i386 libp11-kit0:i386 libpng12-0:i386 libpulse0:i386
  libqt4-dbus:i386 libqt4-declarative:i386 libqt4-network:i386
  libqt4-opengl:i386 libqt4-script:i386 libqt4-sql:i386 libqt4-sql-mysql:i386
  libqt4-xml:i386 libqt4-xmlpatterns:i386 libqtcore4:i386 libqtdbus4:i386
  libqtgui4:i386 libqtwebkit4:i386 libsamplerate0:i386 libsm6:i386
  libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386
  libtasn1-6:i386 libtheora0:i386 libtiff5:i386 libvisual-0.4-0:i386
  libvisual-0.4-plugins:i386 libvorbis0a:i386 libvorbisenc2:i386 libwrap0:i386
  libxi6:i386 libxml2:i386 libxrender1:i386 libxslt1.1:i386 libxss1:i386
  libxt6:i386 libxv1:i386 skype-bin:i386 sni-qt:i386

Почему это? Я использую 64-разрядную версию Ubuntu GNOME 15.10 с GNOME 3.18.


источник
1
Skype - это многоархатное приложение, а не выделенные 64-битные двоичные файлы.
суп чаша

Ответы:

44

Skype - это 32-битное приложение, а 32-битным приложениям нужны 32-битные библиотеки.

Если приложению нужно много библиотек, а оно 32-битное, оно, очевидно, нуждается во многих 32-битных библиотеках.

AB
источник
28

Потому что ваша система является 64-битной системой и почти не имеет 32-битных пакетов / библиотек, установленных по умолчанию .

В 64-битной системе 32-битные пакеты, в отличие от 64-битных, могут использовать только несколько уже установленных пакетов / библиотек: те, которые установлены по умолчанию, и те, которые установлены вручную .

В 64-битной системе по умолчанию установлена ​​64-битная версия почти всех этих пакетов / библиотек.

Если вам нужны доказательства, сравните список пакетов, которые должны быть установлены, со списком пакетов, установленных в вашей системе, независимо от архитектуры ( dpkg-query -f '${Binary:package}\n' -Wперечисляет все пакеты, установленные в вашей системе; sed -n '/:i386/!s/:amd64//p'выводит только строки, не заканчивающиеся на, :i386и удаляет завершающий символ, :amd64если присутствует; "список" содержит список пакетов в вашем вопросе без конечного :i386):

% comm -13 <(dpkg-query -f '${Binary:package}\n' -W | sed -n '/:i386/!s/:amd64//p' | sort) <(sort list)

Вы увидите, что независимый от архитектуры список устанавливаемых пакетов (т. Е. Список пакетов, которые вы еще не установили в своей 32-разрядной / 64-разрядной версии ) будет уменьшен до чего-то похожего на это:

libdbusmenu-qt2
libqt4-opengl
libqtwebkit4
skype-bin
sni-qt
кос
источник
1

Более простой ответ заключается в том, что Linux Skype был написан довольно давно, и в настоящее время поддерживается, а не переписывается. В какой-то момент в будущем 32-битных пользователей останется мало или не останется, и в этот момент они могут переписать.

Более длительное представление заключается в том, что вы можете довольно легко добавить 32-битные библиотеки в свою систему и запустить 32-битное приложение, в то время как 32-битный пользователь не может сделать обратное, поэтому Microsoft сделала Skype 32-битным от начала до конца, а не два выпуска.

Кузница
источник
5
Это совсем не правильно .. Это не фактические факты, и я хотел бы знать, где вы взяли свои источники.
Дэвид
1
@PeterCordes: Корпорация Микрософт приобрела Skype Technologies в 2011 году.
BartekChom
3
@BartekChom: спасибо за исправление, отправив отредактированный комментарий: Да, релизы Skype надоедливо 32-битные двоичные только потому, что они не будут тратить время на разработку 64-битной версии. Это не потому, что порт Linux является гражданином второго класса, а потому, что у них даже нет 64-битной версии Windows. Предположительно, их кодовая база не является 64-битной, или у них есть какой-то вручную настроенный ассм, который они не хотят переносить на 64-битную. Или, возможно, их структуры данных используют много указателей, поэтому 64-битная версия будет медленнее. Или, может быть, 64-битная версия будет хорошей, но они отстой и не сделают ее.
Питер Кордес
2
@David Cole: «Текущая» сборка Skype для Linux - 4.3 и последний раз обновлялась в июне 2014 года. Клиенты Windows и OSX теперь в версии 7.X, а не 4.X. Я чувствую, что вполне справедливо называть это «поддержанным», а не «активно развивающимся». В новых объявлениях о новых функциях обычно упоминается поддержка Windows и OSX, но не упоминается Linux (поскольку большинство последних функций не были добавлены в клиент Skype для Linux. Пожалуйста, уточните, что не правильно, или нет) ".
Кузница