Nhầm lẫn phải không? Hãy để tôi giải thích một chút.
Tại sao?
- Phần mềm 32 bit chạy tốt trên kernel 64 bit với phần cứng có khả năng 64 bit.
- Một số phần mềm vẫn dựa vào các thư viện 32 bit cụ thể. Điều này không tốt, nhưng đôi khi chúng ta không có khả năng thay đổi điều này.
- Phần mềm 32 bit phải có sẵn cho hệ thống để đáp ứng các phụ thuộc, vì vậy nó cũng sử dụng kho 32 bit.
Tôi từ đầu năm 2011. Chuyện gì đã xảy ra?
Trong các phiên bản 64 bit của Ubuntu trước ngày 11.10, một số thư viện 32 bit phổ biến đã được đóng gói trong một ia32-libs
gói duy nhất được biểu thị cho APT / Dpkg là 64 bit và ở vị trí như vậy trong kho lưu trữ. Nếu bạn tình cờ cần một thư viện duy nhất cho một ứng dụng, nó sẽ phụ thuộc vào hơn 150 MB thư viện 32 bit 1 . Rõ ràng, đây không phải là một thiết kế đẹp.
Nhiều kiến trúc?
Ý tưởng mới là giới thiệu cái gọi là khả năng "Multiarch" cho APT / Dpkg và các công cụ xung quanh nó. Điều này đã được trình bày trong một số bản thiết kế trên Launchpad, đây là một trong số đó . Oneiric (11.10) trở thành bản phát hành đầu tiên hỗ trợ Multiarch.
Làm thế nào nó hoạt động?
Bạn có thể nói với Dpkg những kiến trúc mà hệ thống của bạn có khả năng chạy. Trong bản cài đặt 12.04 64 bit của tôi, đây là:
$ cat /etc/dpkg/dpkg.cfg.d/multiarch
foreign-architecture i386
Nó mở ra toàn bộ thế giới của i386
các gói, amd64
vẫn là mặc định:
$ apt-cache show libqt4-core | grep -E "^(Filename|Architecture)"
Architecture: amd64
Filename: pool/universe/q/qt4-x11/libqt4-core_4.8.1-0ubuntu4.3_amd64.deb
$ apt-cache show libqt4-core:i386 | grep -E "^(Filename|Architecture)"
Architecture: i386
Filename: pool/universe/q/qt4-x11/libqt4-core_4.8.1-0ubuntu4.3_i386.deb
Ví dụ trên cho thấy Multiarch cho phép các nhà bảo trì gói chỉ đơn giản làm cho các gói của họ phụ thuộc vào libqt4-core:i386
ví dụ và cho phép cài đặt bất kỳ thư viện / gói 32 bit nào (và do đó để cài đặt bất kỳ gói nào phụ thuộc vào bất kỳ thư viện / gói 32 bit nào) , thay vì một bộ được chọn trước.
ia32-libs
khả năng tương thích
Trong trường hợp bạn đã được sử dụng để cài đặt ia32-libs
gói như một gói tiện lợi để cài đặt một bộ thư viện 32 bit cơ bản phổ biến, bây giờ bạn có thể sử dụng . Đây là một siêu dữ liệu đơn giản tùy thuộc vào cùng một bộ thư viện (hoặc ít nhất là rất giống nhau), nhưng nó sẽ được cài đặt với sức mạnh của Multiarch.ia32-libs-multiarch
Bài đọc liên quan
1 Đối với Lucid (10.04), kích thước cài đặt ia32-libs
gói là 155.812.0 kB.
dpkg --print-foreign-architectures
chứ không phải là đi/etc/dpkg/dpkg.cfg.d/multiarch
. Nó không tồn tại sau ngày 12.04.