X Window System資料一覧

Xクライアントを起動すると「ld.so: libX11.so.4: not found」というエラーが出る

2007/7/29更新

これは共有ライブラリを使用しているシステムで起こるエラーで、当該ライブラリが存在しないか、存在してもライブラリパスに登録されていない。

共有ライブラリを使用しているシステムではアプリケーションの実行時にリンクする必要があるライブラリを/usr/lib等に探しにいく(どのディレクトリを探しにいくかはOSや設定によって異なる)。

このため、実行時にそのディレクトリにライブラリがないと上記のエラーが表示されるのでライブラリ格納ディレクトリにあるかどうか確認し、ない場合はコピーするか、他のディレクトリにインストールしてある場合にはLD_LIBRARY_PATH環境変数にそのディレクトリを追加しておけばよい。

尚、クライアントがどの共有ライブラリを使用しているかはlddコマンドで確認することができる。

例)

% ldd /usr/X11R6/bin/xclock
/usr/X11R6/bin/xclock:
   libXft.so.2 => /usr/X11R6/lib/libXft.so.2 (0x28079000)
   libfontconfig.so.1 => /usr/X11R6/lib/libfontconfig.so.1 (0x2808b000)
   libfreetype.so.9 => /usr/local/lib/libfreetype.so.9 (0x280b3000)
   libexpat.so.4 => /usr/local/lib/libexpat.so.4 (0x2811d000)
   libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x2813d000)
   libm.so.2 => /lib/libm.so.2 (0x28145000)
   libXaw.so.7 => /usr/X11R6/lib/libXaw.so.7 (0x2815e000)
   libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x281b9000)
   libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x281cf000)
   libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x28220000)
   libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x28229000)
   libXpm.so.4 => /usr/X11R6/lib/libXpm.so.4 (0x28240000)
   libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x2824f000)
   libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x2825e000)
   libc.so.5 => /lib/libc.so.5 (0x28326000)
   libz.so.2 => /lib/libz.so.2 (0x28400000)

また、上記の例でも分かるように、起動したクライアントが使用しているライブラリと現在システムにインストールされているライブラリのバージョンが異なるとやはり起動できないので、該当バージョンのライブラリをインストールするか、クライアントを再コンパイルして現行バージョンのライブラリを使用するようにする。