@Calmarius là chính xác, điều này xảy ra nếu bạn xem xét exe 32 bit, thậm chí không có thư viện 32 bit cơ bản.
Tôi đang cố gắng nâng cấp hệ thống của mình (bản cài đặt mới Ubuntu 16.04, từ ngày 12.04), tôi phải cài đặt dịch vụ 32 bit propitiatory cũ avserver
, yêu cầu ia32-libs
(không còn khả dụng). Điều này có nghĩa là cả hai dpkg
và apt-get
không hài lòng (bất cứ điều gì tôi làm, nó sẽ nhắc tôi apt-get -f install
và nếu tôi chạy nó, nó khăng khăng tôi gỡ cài đặt gói dịch vụ) và dịch vụ của tôi sẽ không bắt đầu.
Để chứng minh rằng điều này không còn thiếu các thư viện 32 bit, tôi đã gắn hệ thống cũ của mình (Ubuntu 12.04, ia32-libs
và các thư viện 32 bit) /sda2
. Đảm bảo /opt
(chứa nhị phân 32 bit của tôi) được gắn vào /sda2/opt
, tôi có thể chroot /sda2
và ldd
sau đó chạy như dự định.
Để khắc phục điều này, tôi có thể đã cài đặt thủ công tất cả các gói thư viện phụ thuộc với: i386 (arch). Tuy nhiên, tôi quyết định thay vì cố gắng tìm ra sự phụ thuộc của mình là gì, tôi đã cài đặt rượu vang (phần lớn là 32 bit, và vì vậy cài đặt các thư viện cơ bản và tải thêm mà tôi không thực sự cần, nhưng tôi ổn với điều đó).
Để khắc phục dpkg
và apt-get
, tôi đã chỉnh sửa /var/lib/dpkg/status
, tìm gói cho dịch vụ của mình và xóa ia32-libs
. Bây giờ dpkg
và apt-get
đang hạnh phúc
Thế là xong, ldd
vui vẻ báo cáo: -
root@withnail:/opt/<service path># ldd avserver
linux-gate.so.1 => (0xf77a6000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xf778f000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xf7772000)
libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xf776b000)
libresolv.so.2 => /lib/i386-linux-gnu/libresolv.so.2 (0xf7752000)
libcrypt.so.1 => /lib/i386-linux-gnu/libcrypt.so.1 (0xf7720000)
libktssl.so.1.0.0 => /opt/<service path>/libktssl.so.1.0.0 (0xf76cb000)
libktcrypto.so.1.0.0 => /opt/<service path>/libktcrypto.so.1.0.0 (0xf756b000)
libktz.so.1 => /opt/<service path>/libktz.so.1 (0xf7558000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xf754f000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf73d8000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7383000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xf7366000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf71af000)
/lib/ld-linux.so.2 (0x565b1000)