Odpowiedzi:
Używasz 64-bitowego systemu i nie masz zainstalowanej obsługi bibliotek 32-bitowych.
(jeśli nie używasz sudo w konfiguracji przeczytaj notatkę poniżej)
Większość stacjonarnych systemów Linux z rodziny Fedora / Red Hat:
pkcon install glibc.i686
Być może niektóre stacjonarne systemy Debian / Ubuntu ?:
pkcon install ia32-libs
Fedora lub nowsza wersja Red Hat, CentOS:
sudo dnf install glibc.i686
Starsze RHEL, CentOS:
sudo yum install glibc.i686
Nawet starszy RHEL, CentOS:
sudo yum install glibc.i386
Debian lub Ubuntu:
sudo apt-get install ia32-libs
powinien pobrać (pierwszą, główną) bibliotekę, której potrzebujesz.
Każdy, kto musi zainstalować glibc.i686
lub glibc.i386
prawdopodobnie napotka także inne zależności bibliotek. Aby zidentyfikować pakiet udostępniający dowolną bibliotekę, możesz użyć
ldd /usr/bin/YOURAPPHERE
jeśli nie jesteś pewien, czy jest w /usr/bin
środku, możesz również polegać
ldd $(which YOURAPPNAME)
Dane wyjściowe będą wyglądać następująco:
linux-gate.so.1 => (0xf7760000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf773e000)
libSM.so.6 => not found
Sprawdź brakujące biblioteki (np. libSM.so.6
W powyższych wynikach) i dla każdej z nich musisz znaleźć pakiet, który je udostępnia.
Fedora / Red Hat Enterprise / CentOS:
dnf provides /usr/lib/libSM.so.6
lub na starszych RHEL / CentOS:
yum provides /usr/lib/libSM.so.6
lub na Debian / Ubuntu:
najpierw zainstaluj i pobierz bazę danych dla apt-file
sudo apt-get install apt-file && apt-file update
następnie wyszukaj za pomocą
apt-file find libSM.so.6
Zwróć uwagę na ścieżkę prefiksu /usr/lib
w (zwykłym) przypadku; rzadko niektóre biblioteki nadal żyją /lib
z przyczyn historycznych… W typowych systemach /usr/lib
64-bitowych biblioteki 32-bitowe są włączone, a biblioteki 64-bitowe /usr/lib64
.
(Debian / Ubuntu inaczej organizują biblioteki wielu architektur).
Powyższe powinno dać nazwę pakietu, np .:
libSM-1.2.0-2.fc15.i686 : X.Org X11 SM runtime library
Repo : fedora
Matched from:
Filename : /usr/lib/libSM.so.6
W tym przykładzie nazwa pakietu jest libSM
i nazwa wersji 32bit pakietu jestlibSM.i686
.
Następnie możesz zainstalować pakiet, aby pobrać wymaganą bibliotekę za pkcon
pomocą graficznego interfejsu użytkownika lub sudo dnf/yum/apt-get
odpowiednio…. Np pkcon install libSM.i686
. W razie potrzeby możesz w pełni określić wersję. Np sudo dnf install ibSM-1.2.0-2.fc15.i686
.
Niektóre biblioteki będą miały oznaczenie „epoki” przed ich nazwą; można to pominąć (ciekawi mogą przeczytać poniższe uwagi).
Nawiasem mówiąc, napotkany problem albo sugeruje, że baza danych RPM (odpowiednio DPkg / DSelect) jest uszkodzona lub aplikacja, którą próbujesz uruchomić, nie została zainstalowana za pośrednictwem menedżera pakietów. Jeśli dopiero zaczynasz pracę z Linuksem, prawdopodobnie w miarę możliwości unikniesz używania oprogramowania ze źródeł innych niż menedżer pakietów ...
Rodzaj
su -c
za każdym razem, gdy widzisz sudo
np.
su -c dnf install glibc.i686
Oznaczenie „epoki” przed nazwą jest artefaktem sposobu, w jaki biblioteki RPM obsługują numery wersji; na przykład
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
Tutaj 2:
można pominąć; tylko pkcon install libpng.i686
lub sudo dnf install libpng-1.2.46-1.fc16.i686
. (Niejasno implikuje to coś takiego: w pewnym momencie numer wersji libpng
pakietu został zwinięty do tyłu, a „epoka” musiała zostać zwiększona, aby mieć pewność, że nowsza wersja zostanie uznana za „nowszą” podczas aktualizacji. Lub coś podobnego się zdarzyło. .)
Zaktualizowano w celu wyjaśnienia i pełnego objęcia różnymi opcjami menedżera pakietów (marzec 2016)
Właśnie natrafiłem na ten sam problem na świeżo zainstalowanym 64-bitowym komputerze CentOS 6.4. Pojedyncze polecenie yum naprawi ten plus 99% podobnych problemów:
yum groupinstall „Biblioteki zgodności”
Albo dodaj przedrostek „sudo”, albo uruchom jako root, w zależności od tego, który najbardziej Ci odpowiada.
Ogólnie rzecz biorąc, gdy pojawi się taki błąd, po prostu zrób
yum provides ld-linux.so.2
wtedy zobaczysz coś takiego:
glibc-2.20-5.fc21.i686 : The GNU libc libraries
Repo : fedora
Matched from:
Provides : ld-linux.so.2
a następnie po prostu uruchom następujące polecenia, jak napisał BRPocock (na wypadek, gdybyś zastanawiał się, jaka była logika ...):
yum install glibc.i686
Chciałem tylko dodać komentarz w BRPocock, ale nie mam wystarczających uprawnień.
Mój wkład był więc dla wszystkich, którzy próbują zainstalować IBM Integration Toolkit z pakietu IBM Integration Bus.
Podczas próby uruchomienia polecenia „Installation Manager” z folderu / Integration_Toolkit / IM_Linux (plik do uruchomienia to „install”), pojawia się błąd pokazany w tym poście.
Dalsze instrukcje dotyczące rozwiązania tego problemu można znaleźć na stronie internetowej IBM: https://www-304.ibm.com/support/docview.wss?uid=swg21459143
Mam nadzieję, że pomoże to każdemu, kto spróbuje to zainstalować.
Dodałbym, że dla Debiana potrzebujesz co najmniej jednego kompilatora w systemie (zgodnie z 32-bitowymi bibliotekami Debian Stretch i Jessie ).
Zainstalowałem apt-get install -y gcc-multilib
, aby uruchomić 32-bitowy plik wykonywalny w moim kontenerze dokowanym na podstawie debian: jessie.
Zamiast tego możesz również zainstalować OpenJDK 32-bit ( .i686
). Według mojego testu zostanie on zainstalowany i będzie działał bez problemów.
sudo yum install java-1.8.0-openjdk.i686
Uwaga:
Pakiet java-1.8.0-openjdk zawiera tylko środowisko Java Runtime Environment . Jeśli chcesz tworzyć programy Java, zainstaluj pakiet java-1.8.0-openjdk-devel .
Zobacz tutaj po więcej szczegółów.