Відповіді:
Ви маєте 64-бітну систему і не встановлено підтримку 32-бітної бібліотеки.
(якщо ви не використовуєте судо в налаштуваннях, прочитайте примітку нижче)
Більшість настільних систем Linux в сім'ї Fedora / Red Hat:
pkcon install glibc.i686
Можливо, деякі настільні системи Debian / Ubuntu ?:
pkcon install ia32-libs
Fedora або новіший Red Hat, CentOS:
sudo dnf install glibc.i686
Старіший RHEL, CentOS:
sudo yum install glibc.i686
Навіть старший RHEL, CentOS:
sudo yum install glibc.i386
Debian або Ubuntu:
sudo apt-get install ia32-libs
має захопити вам (першу, основну) бібліотеку, яка вам потрібна.
Кожен, хто потребує встановлення glibc.i686
або glibc.i386
, ймовірно, також наштовхнеться на інші бібліотечні залежності. Для ідентифікації пакету, що надає довільну бібліотеку, ви можете використовувати
ldd /usr/bin/YOURAPPHERE
якщо ви не впевнені, що це в /usr/bin
вас, ви також можете перейти назад
ldd $(which YOURAPPNAME)
Вихід буде виглядати приблизно так:
linux-gate.so.1 => (0xf7760000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf773e000)
libSM.so.6 => not found
Перевірте відсутні бібліотеки (наприклад, libSM.so.6
у наведеному вище висновку), і для кожної вам потрібно знайти пакет, який її надає.
Fedora / Red Hat Enterprise / CentOS:
dnf provides /usr/lib/libSM.so.6
або на старих RHEL / CentOS:
yum provides /usr/lib/libSM.so.6
або на Debian / Ubuntu:
спочатку встановіть та завантажте базу даних для apt-file
sudo apt-get install apt-file && apt-file update
потім пошук за допомогою
apt-file find libSM.so.6
Зверніть увагу на шлях префікса /usr/lib
у (звичайному) випадку; рідко деякі бібліотеки все ще живуть /lib
з історичних причин ... У типових 64-бітних системах живуть 32-бітні бібліотеки /usr/lib
та 64-бітні бібліотеки /usr/lib64
.
(Debian / Ubuntu по-різному організовують бібліотеки з багатьма архітектурами.)
Вищенаведене має дати назву пакета, наприклад:
libSM-1.2.0-2.fc15.i686 : X.Org X11 SM runtime library
Repo : fedora
Matched from:
Filename : /usr/lib/libSM.so.6
У цьому прикладі ім'я пакету є, libSM
а назва 32-бітної версії пакетуlibSM.i686
.
Потім ви можете встановити пакет, щоб захопити необхідну бібліотеку за pkcon
допомогою GUI або, sudo dnf/yum/apt-get
якщо потрібно,…. Напр pkcon install libSM.i686
. При необхідності ви можете вказати версію повністю. Напр sudo dnf install ibSM-1.2.0-2.fc15.i686
.
Деякі бібліотеки матимуть позначення "епохи" перед своїм ім'ям; це можна опустити (цікавий може прочитати примітки нижче).
Випадково проблема, з якою ви стикаєтеся, або означає, що ваша база RPM (відповідно DPkg / DSelect) пошкоджена, або що програма, яку ви намагаєтеся запустити, не була встановлена через менеджер пакунків. Якщо ви новачок у Linux, ви, ймовірно, хочете уникати використання програмного забезпечення з інших джерел, ніж ваш менеджер пакунків, коли це можливо ...
Тип
su -c
кожного разу, коли ви бачите sudo
, наприклад,
su -c dnf install glibc.i686
Позначення "епоха" перед назвою є артефактом того, як базові бібліотеки RPM обробляють номери версій; напр
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
Тут 2:
можна опустити; просто pkcon install libpng.i686
або sudo dnf install libpng-1.2.46-1.fc16.i686
. (Це неясно означає щось на кшталт: у якийсь момент номер версії libpng
пакету відкотився назад, і "епоху" потрібно було збільшити, щоб переконатися, що новіша версія буде вважатися "новішою" під час оновлень. Або трапилось щось подібне. Двічі .)
Оновлено для уточнення та більш повного висвітлення різних варіантів менеджера пакунків (березень 2016 р.)
Щойно натрапив на цю ж проблему на щойно встановленому 64-розрядному комп'ютері CentOS 6.4. Одна команда yum виправить це плюс 99% подібних проблем:
yum groupinstall "Бібліотеки сумісності"
Будьте приставкою цього "sudo" або запустіть як root, залежно від того, що краще для вас підійде.
Загалом, коли ви отримуєте подібну помилку, просто робіть
yum provides ld-linux.so.2
то ви побачите щось на кшталт:
glibc-2.20-5.fc21.i686 : The GNU libc libraries
Repo : fedora
Matched from:
Provides : ld-linux.so.2
а потім просто запустіть таке, як написав BRPocock (на випадок, коли вам було цікаво, яка логіка ...):
yum install glibc.i686
Просто хотів додати коментар у BRPocock, але я не маю достатніх привілеїв.
Тож мій внесок був для всіх, хто намагався встановити інструментарій IBM Integration Toolkit з пакета IBM Integration Bus.
Коли ви намагаєтеся запустити команду "Installation Manager" з папки / Integration_Toolkit / IM_Linux (файл, який потрібно запустити, "встановити"), ви отримаєте помилку, показану в цьому дописі.
Подальші інструкції щодо вирішення цієї проблеми ви знайдете на веб-сторінці IBM: https://www-304.ibm.com/support/docview.wss?uid=swg21459143
Сподіваюся, це допомагає тим, хто намагається встановити це.
Я б додав, що для Debian потрібен принаймні один компілятор у системі (згідно 32-бітових бібліотек Debian Stretch та Jessie ).
Я встановив apt-get install -y gcc-multilib
для того, щоб запустити 32-розрядний виконуваний файл у своєму контейнері docker на основі debian: jessie.
Ви також можете встановити 32-розрядний ( .i686
) OpenJDK ( ). За моїм тестом, він буде встановлений і працює без проблем.
sudo yum install java-1.8.0-openjdk.i686
Примітка:
Пакет java-1.8.0-openjdk містить лише середовище Java Runtime Environment . Якщо ви хочете розробити програми Java, то встановіть пакет java-1.8.0-openjdk-devel .
Дивіться тут для більш детальної інформації.