Các ia32-libs
gói không còn hiện diện trong Ubuntu 12.04 kho cho một hệ thống 64bit. Có bất kỳ gói thay thế có sẵn để tải về?
Các ia32-libs
gói không còn hiện diện trong Ubuntu 12.04 kho cho một hệ thống 64bit. Có bất kỳ gói thay thế có sẵn để tải về?
Câu trả lời:
Gói ia32-libs là một bản hack để cài đặt các gói 32 bit trên bản cài đặt 64 bit. Kể từ phiên bản Ubuntu 11.10 (Oneiric), Multi Arch đã được thêm vào. Một trong những mục tiêu cho nó là loại bỏ ia32-libs
gói. Thay vào đó, bạn phải cài đặt các thư viện 32 bit của gói với:
sudo apt-get install package-name:i386
Bạn không phải lo lắng về điều này đối với các gói trong kho lưu trữ tiêu chuẩn (ví dụ: wine
gói). Đối với phần mềm bên ngoài, khó khăn hơn một chút vì bạn phải tìm phụ thuộc thủ công. Trong trường hợp đó, sử dụng công cụ tìm kiếm yêu thích của bạn để tìm thư viện nào bạn cần.
Có vẻ như ia32-libs vẫn tồn tại, nhưng chỉ là một gói tiện lợi để bao gồm các thư viện 32 bit phổ biến. Gói này hiện sử dụng Multi Arch để cài đặt các gói 32 bit một cách chính xác.
ldd
, chuyển một đường dẫn đến nhị phân làm đối số. Nếu đầu ra chứa một dòng như thế libz.so.1 => not found
, thì bạn cần tìm libz.so.1
. Bạn có thể sử dụng gói.ubfox.com hoặc apt-file search
để tìm gói chứa tệp đó. Trong ví dụ tôi đã đưa ra, bạn cần cài đặt zlib1g:i386
.
package-name
bằng tên thật. Sử dụng ldd
để tìm ra, xem bình luận thứ hai ở trên.
Các ia32-libs
gói đã được thay thế hoàn toàn bởi lib32z1 lib32ncurses5 lib32bz2-1.0
. Đây không phải là một vấn đề vì chức năng của nó vẫn còn đó, chỉ trong các gói khác. Tuy nhiên, chúng tôi không sống trong một thế giới lý tưởng nơi mọi người duy trì các gói của họ và tất cả phần mềm là FLOSS, vì vậy một số gói vẫn phụ thuộc vào ia32-libs.
Có 2 cách:
ia32-libs
nữa. (ưu tiên)Tôi sẽ sử dụng trình nhận citrix làm ví dụ, nhưng bạn có thể sử dụng phương thức này cho bất kỳ gói .deb nào:
Đầu tiên, tải xuống gói .deb của citrix từ trang web của họ và tạo một thư mục tạm thời để thực hiện hack.
mkdir ica_temp
Giải nén gói
dpkg-deb -x icaclient_13.0.0.256735_amd64.deb ica_temp
dpkg-deb --control icaclient_13.0.0.256735_amd64.deb ica_temp/DEBIAN
Mở tệp trong gedit (hoặc trình chỉnh sửa yêu thích của bạn)
sudo -H gedit ica_temp/DEBIAN/control
Tìm dòng bắt đầu bằng Depends:...
. loại bỏ ia32-libs
và thêmlib32z1 lib32ncurses5 lib32bz2-1.0
Xây dựng lại gói sửa đổi
dpkg -b ica_temp icaclient-modified.deb
Và cài đặt nó
sudo dpkg -i icaclient-modified.deb
sudo apt-get install -f
Cài đặt bộ thu citrix cũng yêu cầu một số hack. Bạn có thể tìm hướng dẫn cài đặt đầy đủ trên wiki Ubuntu
Bạn có thể làm điều này với bất kỳ gói .deb cũ nào vẫn phụ thuộc vào ia32-libs.
Xin lưu ý rằng đó là thực tế rất xấu để cài đặt các gói cũ! Đáng buồn thay, đối với một số trình cài đặt nhị phân, bạn không có lựa chọn nào khác.
Bạn có thể tải xuống gói ia32-libs từ kho lưu trữ hiếm . Tải về và cài đặt thủ công, sau đó các phụ thuộc sẽ được giải quyết.
Tôi đọc rằng bạn có nghĩa vụ phải cài đặt ia32-libs-multiarch
gói thay thế. Tuy nhiên nó không hoạt động với tôi và tôi gặp lỗi này
ia32-libs-multiarch:i386 : Depends: libgphoto2-2:i386 but it is not going to be installed.
Giải pháp hiệu quả với tôi là cài đặt các gói sau:
sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386
Tôi tin rằng trường hợp sử dụng cụ thể này đã được thay thế bằng các gói "lib32z1 lib32ncurses5 lib32bz2-1.0 lib32asound2", đây có thể là một câu trả lời cụ thể và hữu ích hơn so với nói "bạn có thể sử dụng đa vòm".
Tôi đã cài đặt ia32-libs như thế này (Tôi chạy Ubuntu 13.04 Rared Ringtail trên máy 64 bit):
Kiểm tra kiến trúc riêng:
$ dpkg --print-architecture
Kiểm tra nếu một kiến trúc nước ngoài được cài đặt:
$ dpkg --print-foreign-architectures
Tùy thuộc vào kết quả của hai lệnh trên, ba lệnh sau có thể hoạt động (mất nhiều thời gian để xử lý trong trường hợp của tôi):
$ sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install ia32-libs
Package ia32-libs is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: lib32z1 lib32ncurses5 lib32bz2-1.0