Obecně, když se objeví takováto chyba, prostě to udělejte
yum provides ld-linux.so.2
pak uvidíte něco jako:
glibc-2.20-5.fc21.i686 : The GNU libc libraries
Repo : fedora
Matched from:
Provides : ld-linux.so.2
a pak stačí spustit následující, jak napsal BRPocock (pro případ, že by vás zajímalo, jaká je logika...):
yum install glibc.i686
Zkuste
$ yum provides ld-linux.so.2
$ yum update
$ yum install glibc.i686 libfreetype.so.6 libfontconfig.so.1 libstdc++.so.6
Doufám, že se to vyřeší.
Používáte 64bitový systém a nemáte nainstalovanou podporu 32bitových knihoven.
Instalace (základní) podpory pro 32bitové spustitelné soubory
(pokud ve svém nastavení nepoužíváte sudo, přečtěte si poznámku níže)
Většina desktopových linuxových systémů v rodině Fedora/Red Hat:
pkcon install glibc.i686
Možná nějaké desktopové systémy Debian/Ubuntu?:
pkcon install ia32-libs
Fedora nebo novější Red Hat, CentOS:
sudo dnf install glibc.i686
Starší RHEL, CentOS:
sudo yum install glibc.i686
Ještě starší RHEL, CentOS:
sudo yum install glibc.i386
Debian nebo Ubuntu:
sudo apt-get install ia32-libs
měli byste získat (první, hlavní) knihovnu, kterou potřebujete.
Jakmile to budete mít, budete pravděpodobně potřebovat support libs
Každý, kdo potřebuje nainstalovat glibc.i686
nebo glibc.i386
pravděpodobně narazí také na jiné závislosti knihovny. K identifikaci balíčku poskytujícího libovolnou knihovnu můžete použít
ldd /usr/bin/YOURAPPHERE
pokud si nejste jisti, že je v /usr/bin
můžete se také vrátit k
ldd $(which YOURAPPNAME)
Výstup bude vypadat takto:
linux-gate.so.1 => (0xf7760000)
libpthread.so.0 => /lib/libpthread.so.0 (0xf773e000)
libSM.so.6 => not found
Zkontrolujte chybějící knihovny (např. libSM.so.6
ve výše uvedeném výstupu) a pro každý z nich musíte najít balíček, který jej poskytuje.
Příkazy k nalezení balíčku podle distribuční rodiny
Fedora/Red Hat Enterprise/CentOS:
dnf provides /usr/lib/libSM.so.6
nebo na starších RHEL/CentOS:
yum provides /usr/lib/libSM.so.6
nebo na Debian/Ubuntu:
nejprve nainstalujte a stáhněte databázi pro apt-file
sudo apt-get install apt-file && apt-file update
pak hledejte pomocí
apt-file find libSM.so.6
Poznamenejte si cestu předpony /usr/lib
v (obvyklém) případě; zřídka, některé knihovny stále žijí pod /lib
z historických důvodů… Na typických 64bitových systémech žijí 32bitové knihovny v /usr/lib
a 64bitové knihovny žijí v /usr/lib64
.
(Debian/Ubuntu organizují knihovny s více architekturami jinak.)
Instalace balíčků pro chybějící knihovny
Výše uvedené by vám mělo poskytnout název balíčku, např.:
libSM-1.2.0-2.fc15.i686 : X.Org X11 SM runtime library
Repo : fedora
Matched from:
Filename : /usr/lib/libSM.so.6
V tomto příkladu je název balíčku libSM
a název 32bitové verze balíčku je libSM.i686
.
Pak můžete nainstalovat balíček, abyste získali potřebnou knihovnu pomocí pkcon
v GUI nebo sudo dnf/yum/apt-get
podle potřeby…. Např. pkcon install libSM.i686
. V případě potřeby můžete specifikovat verzi úplně. Např. sudo dnf install ibSM-1.2.0-2.fc15.i686
.
Některé knihovny budou mít před jménem označení „epocha“; to lze vynechat (zvědavci si mohou přečíst poznámky níže).
Poznámky
Upozornění
Mimochodem, problém, kterému čelíte, buď znamená, že vaše databáze RPM (resp. DPkg/DSelect) je poškozená, nebo že aplikace, kterou se pokoušíte spustit, nebyla nainstalována prostřednictvím správce balíčků. Pokud s Linuxem začínáte, pravděpodobně se budete chtít vyhnout používání softwaru z jiných zdrojů, než je váš správce balíčků, kdykoli je to možné...
Pokud v nastavení nepoužíváte "sudo"
Typ
su -c
pokaždé, když uvidíte sudo
, např.
su -c dnf install glibc.i686
O označení epochy v názvech knihoven
Označení „epoch“ před názvem je artefaktem způsobu, jakým základní knihovny RPM zpracovávají čísla verzí; např.
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
Zde je 2:
lze vynechat; jen pkcon install libpng.i686
nebo sudo dnf install libpng-1.2.46-1.fc16.i686
. (Vágně to znamená něco jako:v určitém okamžiku číslo verze libpng
balíček se vrátil zpět a „epocha“ musela být zvýšena, aby se zajistilo, že novější verze bude během aktualizací považována za „novější“. Nebo se stalo něco podobného. Dvakrát.)
Aktualizováno k objasnění a podrobnějšímu pokrytí různých možností správce balíčků (březen 2016)
Právě jsem narazil na stejný problém na čerstvě nainstalovaném 64bitovém počítači CentOS 6.4. Jediný příkaz yum to vyřeší plus 99 % podobných problémů:
yum groupinstall "Knihovny kompatibility"
Buď to předponu 'sudo', nebo spusťte jako root, podle toho, co vám nejlépe vyhovuje.