忍者ブログ
出来損ないのカメレオン

Library Pathの登録
libraryとは、ソフト(バイナリ)がSolaris上で実行されるに必要な関数が収録されているファイル群です。
多くのソフト(バイナリ)が「/usr/lib」等のlibraryファイルを参照しています。
これらlibraryの一部が欠けていたりすると、そのソフト(バイナリ)は、正常に動作しません。
デフォルトでは「/usr/lib、/usr/openwin/lib、/usr/dt/lib」の3つが登録されていますが、
色々とパッケージを導入していくと「/usr/local/lib」にも導入されていきます。
しかし、後で追加された「/usr/local/lib」はシステムに登録されていません。これでは「/usr/local/lib」を使うソフト(バイナリ)に支障が出るので、登録する必要があります。
一般的な方法として、crleコマンドの使用、.profileにLD_LIBRARY_PATHの登録の2種類があります。
両者の違いは、前者はシステム的に登録。後者はユーザーごとに登録です。
「/usr/local/lib」は、よく使われるのでシステムに登録した方が便利なのです。
ここではcrleコマンドを使用します。設定にはroot権限が必要です。
# crle -c /var/ld/ld.config -l /usr/lib:/usr/openwin/lib:/usr/dt/lib:/usr/local/lib
※スペースの関係上2行になっていますが、「-l」の後に登録するLib Pathを設定します。間違って登録された場合、最悪ほとんどの基本コマンド(ls等)が使用できなくなります。
しかし、crleコマンドは使用可能なので、焦らずもう一度再登録してください。
crleコマンドはlibrary pathを変更する際に、一部ファイルのみ他を参照させる等色々な変更が出来ます。
詳細は、docs.sun.comのcrleコマンドの項目を参照してください

----------------------------------------
ユーザが個別にインストールするプログラムは、/usr/local以下にインストールされるため、
/usr/local/lib以下にあるライブラリーを参照するプログラムを起動すると、
ライブラリーが見つからない等のエラーが出て起動できない場合が多々ありました。
この場合は、システム環境変数で参照するライブラリがあるディレクトリ
(/usr/local/lib)をLD_LIBRARY_PATHに設定するか、
同じディレクトリをLD_RUN_PATHを設定して再度コンパイルしなおす必要がありました。
Solaris9からは、他のUNIXのldconfigと同様のコマンドが出来て、
システムデフォルトのライブラリパスを設定することが出来ます。
例)/usr/local/libをパスに追加する場合
crle -u -l /usr/local/lib

PR
ブログ内検索
Counter


カレンダー
02 2025/03 04
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
忍者ブログ [PR]