Używasz 64-bitowego systemu i nie masz zainstalowanej obsługi bibliotek 32-bitowych.
Aby zainstalować (podstawową) obsługę 32-bitowych plików wykonywalnych
(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.
Gdy to zrobisz, prawdopodobnie będziesz potrzebować bibliotek wsparcia
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.
Polecenia do znalezienia pakietu według rodziny dystrybucji
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).
Instalowanie pakietów dla brakujących bibliotek
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).
Notatki
Ostrzeżenie
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 ...
Jeśli nie używasz „sudo” w swojej konfiguracji
Rodzaj
su -c
za każdym razem, gdy widzisz sudo
np.
su -c dnf install glibc.i686
O desygnatorze epoki w nazwach bibliotek
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.
źródło
Ogólnie rzecz biorąc, gdy pojawi się taki błąd, po prostu zrób
wtedy zobaczysz coś takiego:
a następnie po prostu uruchom następujące polecenia, jak napisał BRPocock (na wypadek, gdybyś zastanawiał się, jaka była logika ...):
źródło
Próbować
Mam nadzieję, że to się wyjaśni.
źródło
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ć.
źródło
sudo mniam zainstaluj fontconfig freetype libfreetype.so.6 libfontconfig.so.1 libstdc ++. so.6
źródło
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.źródło
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.Uwaga:
Zobacz tutaj po więcej szczegółów.
źródło