Solarisのライブラリパス(LD_LIBRARY_PATH)

 シズテム全体にかかわるライブラリはcrleコマンドで設定。

ユーザごとのライブラリはLD_LIBRARY_PATHで設定。(Oracleユーザだったら、Oracleのライブラリを指定するなど)

 

 LD_LIBRARY_PATHについては、色々な人が色々な意見を持っているので、検索エンジンで調べてみてくださいな。

 

参考URL

Solaris Tips 

Solaris.RogueLife 

 

■ライブラリパスの確認

$ crle -v

Default configuration file (/var/ld/ld.config) not found
  Default Library Path (ELF):   /usr/lib  (system default)
  Trusted Directories (ELF):    /usr/lib/secure  (system default)

/var/ld/ld.configがまだ作られていないことが分かる。(not found)

/var/ld/ld.configをcrleコマンドで作る。viで作らないこと。

もし、ld.configが存在していたら、削除するか、リネームしておく。

 

 

■ライブラリパスの登録

まず最初に、/var/ld/ld.config を作って、/libと/usr/libを登録する。(優先順位を考慮すること)

ちなみに今使っているSolaris9は、/libは/usr/libへのエイリアス。

# crle -c /var/ld/ld.config -l /lib:/usr/lib

 

基本的なライブラリパスを-uオプションで優先順位を考えて追加する。

# crle -u -l /usr/local/lib:/usr/sfw/lib

 

さらに必要なパスを追加する

# crle -u -l /usr/openwin/lib:/usr/xpg4/lib:/usr/ccs/lib

 

 

 ■ライブラリパスを確認する

デフォルトライブラリ 

# crle -v

Configuration file [version 4]: /var/ld/ld.config  
  Default Library Path (ELF):   /lib:/usr/lib:/usr/local/lib:/usr/sfw/lib:
/usr/openwin/lib:/usr/dt/lib:/usr/xpg4/lib:/usr/ccs/lib
  Trusted Directories (ELF):    /usr/lib/secure  (system default)

Command line:
  crle -c /var/ld/ld.config \
    -l /lib:/usr/lib:/usr/local/lib:/usr/sfw/lib:/usr/openwin/lib:/usr/dt/lib:
/usr/xpg4/lib:/usr/ccs/lib

 

 

■Solaris10のライブラリパス

Solaris10の場合、

/usr/sfw/lib  FreeType, PNG, JPEGライブラリがインストールされている。

/usr/local/mysql/lib/mysql  snortなど libmysqlclient.so.10 が必要な場合に指定する。

 

 

■ライブラリのエラーメッセージ

ライブラリが存在しないというエラーは、/var/adm/message をチェックする。 

 

 

■共有ライブラリとは

共有ライブラリに関する情報:

xxxxx.so.(バージョン番号) ってやつで、部品化された関数の集合みたいなもの。

http://www.ncad.co.jp/~komata/c-kouza26.htm

 

使っている共有ライブラリを調べるときは、lddコマンドを使う。

例:lsコマンドが使っている共有ライブラリ 

# ldd /bin/ls    
        libc.so.1 =>     /usr/lib/libc.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        /usr/platform/SUNW,Sun-Fire-V240/lib/libc_psr.so.1