ライブラリが見つからないと怒られる。
Linux(CentOS5)に、とあるアプリケーションをインストールしようとしたときに下のようなエラーが出てインストールが失敗する現象に陥りました。
[root@host tmp]# ./Installer.bin : awk: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory /bin/ls: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory hostname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory :
ライブラリが見つからないと言われているんだけど、ちゃんとあるのに何でって感じなんですが、
結局下記のようにバイナリの中身を書き換えることで回避できました。
export LD_ASSUME_KERNEL=2.2.5 ↓ #xport LD_ASSUME_KERNEL=2.2.5
注意点としてeの部分を#に書き換えるときに #export とするとバイナリがおかしくなっちゃうのでダメです。
viとかで直接書き換えてもいいけど下記のコマンドをさくっと実行すればOK
[root@host tmp]# cp Installer.bin Installer.bak [root@host tmp]# cat Installer.bak | sed "s/export LD_ASSUME_KERNEL/#xport LD_ASSUME_KERNEL/" > Installer.bin
これでやっとインストールができると思ったら。また別のライブラリがないと怒られました。
[root@host tmp]# ./Installer.bin : Stack Trace: java.lang.UnsatisfiedLinkError: /tmp/install.dir.28214/Linux/resource/jre/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory :
今度はほんとにライブラリが足りないみたいので、libXpをインストール
yumコマンドが使える環境なら下記でOK
[root@host tmp]# yum install libXp.so.6
RPMパッケージの場合は下記
今回インストールしたパッケージは「libXp-1.0.0-8.1.el5.i386.rpm」です。
[root@host tmp]# rpm -ivh libXp-<version>.el5.i386.rpm
ちなみにCentOS5だとlibXPだけど、CentOS4の場合は「xorg-x11-deprecated-libs」をインストールする必要があります。
(依存パッケージがいくつかあるからyumインストールした方がいいですね)
補足:今回パッケージをとってきた場所
http://download.osgeo.org/qgis/linux/CentOS_5x/qgis-0.11.0/libs/