Tại sao có quá nhiều phụ thuộc 32 bit cho Skype?


16

Khi cài đặt Skype, cho dù đó là bằng cách chạy (sau khi bật kho lưu trữ đối tác):

sudo apt-get install skype

Hoặc cài đặt nó từ .debtệp mà bạn nhận được từ trang web Skype. Tôi luôn thấy rằng luôn có một lượng lớn các phụ thuộc 32 bit được cài đặt:

  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

Tại sao lại thế này? Tôi đang chạy Ubuntu 64-bit GNOME 15.10 với Gnome 3.18.


1
Skype là một ứng dụng multiarch thay vì có các nhị phân 64 bit chuyên dụng.
bát súp

Câu trả lời:


44

Skype là một ứng dụng 32 bit và các ứng dụng 32 bit cần các thư viện 32 bit.

Nếu một ứng dụng cần nhiều thư viện và nó là một thư viện 32 bit thì rõ ràng nó cần nhiều thư viện 32 bit.


28

Bởi vì hệ thống của bạn là hệ thống 64 bit và gần như không có gói / thư viện 32 bit nào được cài đặt theo mặc định .

Trên hệ thống 64 bit, các gói 32 bit, trái với các gói 64 bit, chỉ có thể tận dụng một số gói / thư viện đã được cài đặt: một số gói được cài đặt theo mặc định và các gói được cài đặt thủ công .

Trên hệ thống 64 bit, phiên bản 64 bit của hầu hết các gói / thư viện đó được cài đặt theo mặc định.

Nếu bạn muốn bằng chứng, hãy so sánh danh sách các gói sẽ được cài đặt với danh sách các gói được cài đặt trong hệ thống của bạn theo cách không tin kiến ​​trúc ( dpkg-query -f '${Binary:package}\n' -Wliệt kê tất cả các gói được cài đặt trong hệ thống của bạn; sed -n '/:i386/!s/:amd64//p'chỉ in các dòng không kết thúc :i386và xóa dấu vết :amd64nếu hiện tại; "danh sách" chứa danh sách các gói trong câu hỏi của bạn mà không có dấu vết :i386):

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

Bạn sẽ thấy rằng danh sách các gói không xác định kiến ​​trúc sẽ được cài đặt (tức là danh sách các gói bạn chưa cài đặt trong phiên bản 32 bit / 64 bit của chúng ) sẽ co lại thành một thứ tương tự như sau:

libdbusmenu-qt2
libqt4-opengl
libqtwebkit4
skype-bin
sni-qt

1

Một câu trả lời đơn giản hơn là Linux Skype đã được viết cách đây khá lâu và hiện đang được duy trì, không được viết lại. Tại một thời điểm nào đó trong tương lai, sẽ có ít hoặc không còn người dùng 32 bit và họ có thể viết lại vào thời điểm đó.

Một cái nhìn dài hơn là bạn có thể dễ dàng thêm lib 32 bit vào hệ thống của mình và chạy ứng dụng 32 bit, trong khi người dùng 32 bit không thể làm ngược lại, vì vậy Microsoft đã tạo Skype 32bit từ đầu đến cuối thay vì hai bản phát hành.


5
Điều này hoàn toàn không đúng .. Đây không phải là sự thật thực tế và tôi rất muốn biết bạn lấy nguồn từ đâu.
David

1
@PeterCordes: Tập đoàn Мicrosoft đã mua Skype Technologies vào năm 2011
BartekChom

3
@BartekChom: cảm ơn bạn đã sửa lỗi, đăng lại một bình luận đã chỉnh sửa: Có, các bản phát hành Skype chỉ là nhị phân 32 bit khó chịu vì chúng sẽ không đặt thời gian phát triển thành phiên bản 64 bit. Điều này không phải do cổng Linux là công dân hạng 2, bởi vì họ thậm chí không có phiên bản Windows 64 bit. Có lẽ cơ sở mã của họ không sạch 64 bit hoặc họ có một số mã asm được điều chỉnh bằng tay mà họ không muốn chuyển sang 64 bit. Hoặc có thể cấu trúc dữ liệu của họ sử dụng nhiều con trỏ, vì vậy phiên bản 64 bit sẽ chậm hơn. Hoặc có thể một phiên bản 64 bit sẽ tốt, nhưng chúng không tạo ra được.
Peter Cordes

2
@David Cole: Bản dựng Linux "hiện tại" của Skype là 4.3 và được cập nhật lần cuối vào tháng 6 năm 2014. Các máy khách Windows và OSX hiện đã có phiên bản 7.X, không phải 4.X. Tôi cảm thấy đó là hoàn toàn công bằng khi coi đó là "duy trì" và không "phát triển tích cực". Thông báo mới về các tính năng sắp tới thường xuyên đề cập đến hỗ trợ Windows và OSX, nhưng không đề cập đến Linux (vì phần lớn các tính năng gần đây chưa được thêm vào ứng dụng khách Skype Linux. Vui lòng cụ thể hơn về những gì không chính xác hoặc không phải là "thực tế thực tế ".
Forge
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.