トップページ » Solaris豆知識 » lddコマンドでダイナミックリンクされているライブラリを調べる
カテゴリー
My Yahoo!に追加
Sun社提供情報
Solarisパッケージダウンロード
Sunマシンは買うには
blogs.sun.com
お勧めサイト
プライベートリンク

lddコマンドでダイナミックリンクされているライブラリを調べる

コマンドやアプリケーションが、どんなライブラリをダイナミックリンクしているのか調べるには ldd コマンドを利用します。

■ 実行例

# ldd /usr/local/apache2/bin/httpd
libaprutil-0.so.0 => /usr/local/apache2/lib/libaprutil-0.so.0
libexpat.so.0 => /usr/local/apache2/lib/libexpat.so.0
libapr-0.so.0 => /usr/local/apache2/lib/libapr-0.so.0
libsendfile.so.1 => /usr/lib/libsendfile.so.1
librt.so.1 => /usr/lib/librt.so.1
libm.so.1 => /usr/lib/libm.so.1
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libresolv.so.2 => /usr/lib/libresolv.so.2
libdl.so.1 => /usr/lib/libdl.so.1
libpthread.so.1 => /usr/lib/libpthread.so.1
libc.so.1 => /usr/lib/libc.so.1
libaio.so.1 => /usr/lib/libaio.so.1
libmd5.so.1 => /usr/lib/libmd5.so.1
libmp.so.2 => /usr/lib/libmp.so.2
libthread.so.1 => /usr/lib/libthread.so.1
/usr/platform/SUNW,Sun-Blade-100/lib/libc_psr.so.1
/usr/platform/SUNW,Sun-Blade-100/lib/libmd5_psr.so.1

ダイナミックライブラリに対しても調べることが出来ます。

# ldd /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libc.so.1 => /usr/lib/libc.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libmp.so.2 => /usr/lib/libmp.so.2
/usr/platform/SUNW,Sun-Blade-100/lib/libc_psr.so.1

スタティックリンクされたアプリケーションは、シェアードライブラリーを使用していないといったメッセージが表示されます。
# ldd /sbin/sh
ldd: /sbin/sh: 動的実行可能オブジェクトファイルまたは共用オブジェクトファイルではありません。
ダイナミックライブラリが見つからない場合、以下のように表示されます。
# ldd /usr/local/bin/snort
libz.so => /usr/lib/libz.so
libm.so.1 => /usr/lib/libm.so.1
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libmysqlclient.so.10 => (ファイルが見つかりません)
libc.so.1 => /usr/lib/libc.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libmp.so.2 => /usr/lib/libmp.so.2
/usr/platform/SUNW,Sun-Blade-100/lib/libc_psr.so.1
これは、LD_LIBRARY_PATH や LD_LIBRARY_PATH_64 変数をきちんと設定(ライブラリーの含まれるパスをセットする)することで解決することが出来ます。面倒な場合はライブラリパスが通っているところに実際のライブラリへのシンボリックリンクを作成するという手もあります。 また、Solaris 8 からは、Linux の ld.conf のような機能があります。直接ファイルを編集するのではなく、crle コマンドを利用します。新規登録の場合、以下のように設定ファイル(/var/ld/ld.config)を指定して基本的なライブラリーのパスを -l オプションで指定し登録します。ちなみにSolaris9のデフォルトの状態では以下のようになっております。-64オプションは64ビット情報の表示/設定に使用します。
# crle

デフォルト構成ファイル(/var/ld/ld.config) が見つかりません
デフォルトライブラリパス (ELF): /usr/lib (システムデフォルト)
トラステッドディレクトリ (ELF): /usr/lib/secure (システムデフォルト)

# crle -64

デフォルト構成ファイル(/var/ld/64/ld.config) が見つかりません
デフォルトライブラリパス (ELF): /usr/lib/64 (システムデフォルト)
Trusted Directories (ELF): /usr/lib/secure/64 (system default)
 変更する場合は以下のように登録します。(これで/var/ld/ld.configが作成されます)
# crle -c /var/ld/ld.config -l /usr/lib:/usr/local/mysql/lib/mysql
# crle

構成ファイル [3]: /var/ld/ld.config
デフォルトライブラリパス(ELF): /usr/lib:/usr/local/mysql/lib/mysql
トラステッドディレクトリ(ELF): /usr/lib/secure (システムデフォルト)

コマンド行:
crle -c /var/ld/ld.config -l /usr/lib:/usr/local/mysql/lib/mysql
もう一度snortのライブラリをチェックすると今度はちゃんとリンクされていることがわかります。
# ldd /usr/local/bin/snort
libz.so => /usr/lib/libz.so
libm.so.1 => /usr/lib/libm.so.1
libsocket.so.1 => /usr/lib/libsocket.so.1
libnsl.so.1 => /usr/lib/libnsl.so.1
libmysqlclient.so.10 => /usr/local/mysql/lib/mysql/libmysqlclient.so.10
libc.so.1 => /usr/lib/libc.so.1
libdl.so.1 => /usr/lib/libdl.so.1
libmp.so.2 => /usr/lib/libmp.so.2
libz.so => /usr/local/lib/libz.so
libcrypt_i.so.1 => /usr/lib/libcrypt_i.so.1
libgen.so.1 => /usr/lib/libgen.so.1
libgcc_s.so.1 => /usr/local/lib/libgcc_s.so.1
/usr/platform/SUNW,Sun-Blade-100/lib/libc_psr.so.1
フリーソフトのインストール後に起動でコケる理由で上記のようなライブラリのリンクミスなどもありますのでトラブルシューティングの参考にしてください。ライブラリが存在しない旨のエラーメッセージは/var/adm/messagesファイルに出力されるのですぐにわかるはずです。

Solaris豆知識のその他のリンク

Solaris系技術トレーニング一覧

Solaris10システム管理基本コース
Solaris10ネットワーク・インターネットサーバー管理コース
セキュリティ・パフォーマンス管理・トラブルシューティング等
Sun Cluster、ボリューム管理ソフトウェア
仮想化技術全般
シンクライアント、SunRay、デスクトップソフトウェア
アイデンティティマネージメントサービス
アプリケーションサーバーとWebポータル
サーバー(ハードウェア)メンテナンス
Sun Java CAPS
MySQL

コメント

http://661329335740e7f0c96b85df7914113a-t.ncvxui.info 661329335740e7f0c96b85df7914113a [url]http://661329335740e7f0c96b85df7914113a-b1.ncvxui.info[/url] [url=http://661329335740e7f0c96b85df7914113a-b2.ncvxui.info]661329335740e7f0c96b85df7914113a[/url] [u]http://661329335740e7f0c96b85df7914113a-b3.ncvxui.info[/u] d0dcc556412a086f2aaa2d6f3acefbbe

Posted by: Trystan : 2007年06月08日 14:32

http://661329335740e7f0c96b85df7914113a-t.ncvxui.info 661329335740e7f0c96b85df7914113a [url]http://661329335740e7f0c96b85df7914113a-b1.ncvxui.info[/url] [url=http://661329335740e7f0c96b85df7914113a-b2.ncvxui.info]661329335740e7f0c96b85df7914113a[/url] [u]http://661329335740e7f0c96b85df7914113a-b3.ncvxui.info[/u] d0dcc556412a086f2aaa2d6f3acefbbe

Posted by: Trystan : 2007年06月08日 14:32

ChhVIl mxztpcumrfht, [url=http://ikwuhfcxdxmg.com/]ikwuhfcxdxmg[/url], [link=http://bebnydhhmezm.com/]bebnydhhmezm[/link], http://atqivaqcrvgv.com/

Posted by: ltbaxw : 2009年10月06日 05:16

xskjhj voynyzbjmcwr, [url=http://chnvmlfmabri.com/]chnvmlfmabri[/url], [link=http://cneoqhxfxtfi.com/]cneoqhxfxtfi[/link], http://dbkrikpizikh.com/

Posted by: yiiydljnfi : 2010年01月22日 19:11

4MWj8r tsexfcfyfpno, [url=http://uyubhwgxuqvg.com/]uyubhwgxuqvg[/url], [link=http://fbuzhzshbxqi.com/]fbuzhzshbxqi[/link], http://wizxhgqpikcj.com/

Posted by: dninghctrrm : 2010年02月25日 13:50

yshkprxmwszyabj http://ovskihwymwimtsd.com [url=http://kotqlentldbrycq.com]frixphdcfxtuzjg[/url]

Posted by: ogmwpvszca : 2010年04月14日 07:32

4yJLQv uhafadxjuhac, [url=http://tmqrfkwsnrnd.com/]tmqrfkwsnrnd[/url], [link=http://gcedmfahzesg.com/]gcedmfahzesg[/link], http://czcffcggbjcw.com/

Posted by: xtnilxsxn : 2010年04月23日 07:59

4yJLQv uhafadxjuhac, [url=http://tmqrfkwsnrnd.com/]tmqrfkwsnrnd[/url], [link=http://gcedmfahzesg.com/]gcedmfahzesg[/link], http://czcffcggbjcw.com/

Posted by: xtnilxsxn : 2010年04月23日 08:00

4yJLQv uhafadxjuhac, [url=http://tmqrfkwsnrnd.com/]tmqrfkwsnrnd[/url], [link=http://gcedmfahzesg.com/]gcedmfahzesg[/link], http://czcffcggbjcw.com/

Posted by: xtnilxsxn : 2010年04月23日 08:01
コメントする









名前、アドレスを登録しますか?