Warum gibt es für Skype so viele 32-Bit-Abhängigkeiten?

16

Bei der Installation von Skype, ob es ausgeführt wird (nachdem das Partner-Repository aktiviert wurde):

sudo apt-get install skype

Oder installieren Sie es von der .debDatei, die Sie von der Skype-Website erhalten. Ich stelle immer fest, dass immer eine große Anzahl von 32-Bit-Abhängigkeiten installiert werden muss:

  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

Warum ist das? Ich verwende 64-Bit-Ubuntu GNOME 15.10 mit GNOME 3.18.


quelle
1
Skype ist eine Multiarch- Anwendung und keine dedizierten 64-Bit-Binärdateien.
Suppenteller

Antworten:

44

Skype ist eine 32-Bit-Anwendung und 32-Bit-Anwendungen benötigen 32-Bit-Bibliotheken.

Wenn eine Anwendung viele Bibliotheken benötigt und es sich um eine 32-Bit- Anwendung handelt, werden offensichtlich viele 32-Bit-Bibliotheken benötigt.

AB
quelle
28

Da Ihr System ein 64-Bit-System ist und standardmäßig fast keine 32-Bit-Pakete / -Bibliotheken installiert sind .

Auf einem 64-Bit-System können 32-Bit-Pakete im Gegensatz zu 64-Bit-Paketen nur einige wenige bereits installierte Pakete / Bibliotheken nutzen: die wenigen, die standardmäßig installiert sind, und die manuell installierten .

Auf einem 64-Bit-System wird standardmäßig die 64-Bit-Version fast aller dieser Pakete / Bibliotheken installiert.

Wenn Sie Beweise wünschen, vergleichen Sie die Liste der zu installierenden Pakete mit der Liste der auf Ihrem System installierten Pakete auf architekturunabhängige Weise ( dpkg-query -f '${Binary:package}\n' -Wlistet alle auf Ihrem System installierten Pakete auf; sed -n '/:i386/!s/:amd64//p'druckt nur die Zeilen, die nicht mit enden, :i386und entfernt ein nachfolgendes :amd64if present; "list" enthält die Liste der Pakete in Ihrer Frage ohne das nachfolgende :i386):

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

Sie werden feststellen, dass die architekturunabhängige Liste der zu installierenden Pakete (dh die Liste der Pakete, die Sie noch nicht in ihrer 32-Bit- / 64-Bit-Version installiert haben ) auf etwas Ähnliches verkleinert wird:

libdbusmenu-qt2
libqt4-opengl
libqtwebkit4
skype-bin
sni-qt
kos
quelle
1

Eine einfachere Antwort ist, dass Linux Skype vor einiger Zeit geschrieben wurde und derzeit beibehalten und nicht neu geschrieben wird. Irgendwann in der Zukunft werden nur noch wenige oder keine 32-Bit-Benutzer mehr übrig sein, und sie werden möglicherweise zu diesem Zeitpunkt neu schreiben.

Eine längere Sichtweise ist, dass Sie Ihrem System ziemlich einfach 32-Bit-Bibliotheken hinzufügen und die 32-Bit-App ausführen können, während ein 32-Bit-Benutzer nicht das Gegenteil tun kann. Microsoft hat daher Skype 32-Bit von Anfang bis Ende erstellt und nicht zwei Versionen.

Schmiede
quelle
5
Dies ist überhaupt nicht korrekt. Dies sind keine tatsächlichen Fakten, und ich würde gerne wissen, woher Sie Ihre Quellen haben.
David
1
@PeterCordes: Die Microsoft Corporation erwarb Skype Technologies im Jahr 2011.
BartekChom
3
@BartekChom: Vielen Dank für die Korrektur und das erneute Veröffentlichen eines bearbeiteten Kommentars: Ja, die Skype-Versionen sind nur ärgerlich 32-Bit-Binärdateien, da sie nicht die Entwicklungszeit in die Erstellung einer 64-Bit-Version investieren. Dies liegt nicht daran, dass der Linux-Port ein Bürger zweiter Klasse ist, sondern daran, dass er nicht einmal über eine 64-Bit-Windows-Version verfügt. Vermutlich ist ihre Codebasis nicht 64-Bit-sauber, oder sie haben eine von Hand abgestimmte Funktion, die sie nicht auf 64-Bit portieren möchten. Oder vielleicht verwenden ihre Datenstrukturen viele Zeiger, sodass eine 64-Bit-Version langsamer ist. Oder vielleicht wäre eine 64-Bit-Version gut, aber sie saugen und machen keine.
Peter Cordes
2
@David Cole: Die "aktuelle" Linux-Version von Skype ist 4.3 und wurde zuletzt im Juni 2014 aktualisiert. Die Windows- und OSX-Clients sind jetzt in Version 7.X und nicht in Version 4.X. Ich bin der Meinung, dass es durchaus gerechtfertigt ist, dies als "aufrechterhalten" und nicht als "aktiv entwickelt" zu bezeichnen. In neuen Ankündigungen der kommenden Funktionen wird routinemäßig die Windows- und OSX-Unterstützung erwähnt, jedoch nicht Linux (da die meisten neuen Funktionen nicht zum Skype Linux-Client hinzugefügt wurden) ".
Schmiede