Câu trả lời:
Bạn đang sử dụng hệ thống 64 bit và không cài đặt hỗ trợ thư viện 32 bit.
(nếu bạn không sử dụng sudo trong thiết lập của mình, hãy đọc ghi chú bên dưới)
Hầu hết các hệ thống Linux dành cho máy tính để bàn trong gia đình Fedora / Red Hat:
pkcon install glibc.i686
Có thể một số hệ thống Debian / Ubuntu trên máy tính để bàn?:
pkcon install ia32-libs
Fedora hoặc Red Hat mới hơn, CentOS:
sudo dnf install glibc.i686
RHEL cũ hơn, CentOS:
sudo yum install glibc.i686
Thậm chí cũ hơn RHEL, CentOS:
sudo yum install glibc.i386
Debian hoặc Ubuntu:
sudo apt-get install ia32-libs
nên lấy cho bạn thư viện (đầu tiên, chính) mà bạn cần.
Bất cứ ai cũng cần cài đặt glibc.i686
hoặc glibc.i386
có thể cũng sẽ chạy vào các phụ thuộc thư viện khác. Để xác định một gói cung cấp một thư viện tùy ý, bạn có thể sử dụng
ldd /usr/bin/YOURAPPHERE
nếu bạn không chắc chắn thì nó /usr/bin
cũng có thể rơi vào
ldd $(which YOURAPPNAME)
Đầu ra sẽ như thế này:
linux-gate.so.1 => (0xf7760000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf773e000)
libSM.so.6 => not found
Kiểm tra các thư viện bị thiếu (ví dụ như libSM.so.6
ở đầu ra ở trên) và cho mỗi thư viện bạn cần tìm gói cung cấp nó.
Fedora / Doanh nghiệp mũ đỏ / CentOS:
dnf provides /usr/lib/libSM.so.6
hoặc, trên RHEL / CentOS cũ hơn:
yum provides /usr/lib/libSM.so.6
hoặc, trên Debian / Ubuntu:
đầu tiên, cài đặt và tải xuống cơ sở dữ liệu cho apt-file
sudo apt-get install apt-file && apt-file update
sau đó tìm kiếm với
apt-file find libSM.so.6
Lưu ý đường dẫn tiền tố /usr/lib
trong trường hợp (thông thường); hiếm khi, một số thư viện vẫn tồn tại /lib
vì lý do lịch sử trên các hệ thống 64 bit điển hình, thư viện 32 bit sống /usr/lib
và thư viện 64 bit sống trong đó /usr/lib64
.
(Debian / Ubuntu tổ chức các thư viện đa kiến trúc khác nhau.)
Ở trên sẽ cung cấp cho bạn một tên gói, ví dụ:
libSM-1.2.0-2.fc15.i686 : X.Org X11 SM runtime library
Repo : fedora
Matched from:
Filename : /usr/lib/libSM.so.6
Trong ví dụ này tên của gói là libSM
và tên của phiên bản 32 bit của gói làlibSM.i686
.
Sau đó, bạn có thể cài đặt gói để lấy thư viện cần thiết bằng pkcon
GUI hoặc sudo dnf/yum/apt-get
dưới dạng thích hợp. Ví dụ pkcon install libSM.i686
. Nếu cần bạn có thể chỉ định phiên bản đầy đủ. Ví dụ sudo dnf install ibSM-1.2.0-2.fc15.i686
.
Một số thư viện sẽ có một người chỉ định epoch tinh tinh trước tên của họ; điều này có thể được bỏ qua (tò mò có thể đọc các ghi chú bên dưới).
Ngẫu nhiên, sự cố bạn gặp phải ngụ ý rằng cơ sở dữ liệu RPM (tương ứng DPkg / DSelect) của bạn bị hỏng hoặc ứng dụng bạn đang cố chạy không được cài đặt thông qua trình quản lý gói. Nếu bạn chưa quen với Linux, có lẽ bạn muốn tránh sử dụng phần mềm từ các nguồn khác ngoài trình quản lý gói của mình, bất cứ khi nào có thể ...
Kiểu
su -c
mỗi khi bạn nhìn thấy sudo
, ví dụ,
su -c dnf install glibc.i686
Trình thiết kế epoch tinh tinh trước tên là một tạo tác của cách các thư viện RPM cơ bản xử lý số phiên bản; ví dụ
2:libpng-1.2.46-1.fc16.i686 : A library of functions for manipulating PNG image format files
Repo : fedora
Matched from:
Filename : /usr/lib/libpng.so.3
Ở đây, 2:
có thể được bỏ qua; chỉ pkcon install libpng.i686
hoặc sudo dnf install libpng-1.2.46-1.fc16.i686
. (Nó mơ hồ ám chỉ cái gì đó như: tại một số điểm, số phiên bản của libpng
gói cuộn ngược, và “thời đại” đã được tăng lên để đảm bảo các phiên bản mới hơn sẽ được coi là “mới” trong bản cập nhật Hoặc một cái gì đó tương tự đã xảy ra hai lần.. .)
Được cập nhật để làm rõ và bao gồm các tùy chọn trình quản lý gói khác nhau đầy đủ hơn (Tháng 3 năm 2016)
Cũng gặp phải vấn đề tương tự trên máy CentOS 6.4 64 bit mới cài đặt. Một lệnh yum duy nhất sẽ khắc phục điều này cộng với 99% các vấn đề tương tự:
yum nhóm cài đặt "Thư viện tương thích"
Hoặc là tiền tố này với 'sudo' hoặc chạy dưới quyền root, bất cứ điều gì phù hợp nhất với bạn.
Nói chung, khi bạn gặp một lỗi như thế này, chỉ cần làm
yum provides ld-linux.so.2
sau đó bạn sẽ thấy một cái gì đó như:
glibc-2.20-5.fc21.i686 : The GNU libc libraries
Repo : fedora
Matched from:
Provides : ld-linux.so.2
và sau đó bạn chỉ cần chạy như sau BRPocock đã viết (trong trường hợp bạn đang tự hỏi logic là gì ...):
yum install glibc.i686
Chỉ muốn thêm một nhận xét trong BRPocock, nhưng tôi không có đủ đặc quyền.
Vì vậy, đóng góp của tôi là cho mọi người đang cố gắng cài đặt Bộ công cụ tích hợp của IBM từ gói Bus tích hợp của IBM.
Khi bạn cố chạy lệnh "Trình quản lý cài đặt" từ thư mục / Integration_Toolkit / IM_Linux (tệp cần chạy là "cài đặt"), bạn sẽ gặp lỗi hiển thị trong bài đăng này.
Hướng dẫn thêm để khắc phục sự cố này bạn sẽ tìm thấy trong trang web của IBM này: https://www-304.ibm.com/support/docview.wss?uid=swg21459143
Hy vọng điều này sẽ giúp cho bất cứ ai cố gắng để cài đặt đó.
Tôi sẽ thêm cho Debian bạn cần ít nhất một trình biên dịch trong hệ thống (theo thư viện Debian Stretch và Jessie 32-bit ).
Tôi đã cài đặt apt-get install -y gcc-multilib
để chạy tệp thực thi 32 bit trong bộ chứa docker của mình dựa trên debian: jessie.
Bạn cũng có thể cài đặt OpenJDK 32-bit ( .i686
). Theo thử nghiệm của tôi, nó sẽ được cài đặt và hoạt động mà không gặp vấn đề gì.
sudo yum install java-1.8.0-openjdk.i686
Ghi chú:
Gói java-1.8.0-openjdk chỉ chứa Môi trường chạy thi hành Java . Nếu bạn muốn phát triển các chương trình Java thì hãy cài đặt gói java-1.8.0-openjdk-devel .
Xem ở đây để biết thêm chi tiết.