GNU/Linux >> Linux の 問題 >  >> Cent OS

Linux で ldconfig コマンドを使用する方法

ldconfig コマンドは、システムに共有ライブラリの新しい場所を通知するために使用されます。 /etc/ld.so.conf によって提供される使用情報

ldconfig コマンドは、構成ファイルに基づいてすべてのライブラリのキャッシュ データベースを作成します。このキャッシュは通常 /etc/ld.so.cache に保存されます ファイル。

ldconfig コマンドの構文は次のとおりです:

# ldconfig [option]

次の表に、ldconfig コマンドの便利なオプションを示します:

オプション 説明
-v 冗長;追加情報を出力します。
-n コマンドライン オプションを使用して、新しい共有ライブラリの場所を指定します。例:ldconfig -n /some/directory.
-f デフォルトではなく別の構成ファイルを指定します (/etc/ld.so.conf )。
-p キャッシュ ファイルに保存されている現在のライブラリのリストを出力するために使用します。

構成ファイル /etc/ld.so.conf

共有ライブラリの主な構成ファイルは /etc/ld.so.conf ファイルです。ただし、通常、このファイルには 1 行しかありません:

# cat /etc/ld.so.conf 
include ld.so.conf.d/*.conf

このファイルの include 行は、指定されたディレクトリ内のすべての構成ファイルも使用するようにシステムに指示します。前の例の場合、/etc/ld.so.conf.d ディレクトリ内の「.conf」で終わるすべてのファイルになります。

構成ファイル自体は単純です。共有ライブラリが保存されているディレクトリが含まれているだけです:

# more /etc/ld.so.conf.d/libiscsi-x86_64.conf /usr/lib64/iscsi
# ls /usr/lib64/iscsi
libiscsi.so.2 libiscsi.so.2.0.10900

キャッシュされたライブラリの一覧表示

キャッシュされたライブラリを一覧表示するには、以下に示すように ldconfig コマンドの -p オプションを使用できます:

# ldconfig -p | more
784 libs found in cache `/etc/ld.so.cache'
        p11-kit-trust.so (libc6,x86-64) => /lib64/p11-kit-trust.so
        libz.so.1 (libc6,x86-64) => /lib64/libz.so.1
        libyaml-0.so.2 (libc6,x86-64) => /lib64/libyaml-0.so.2
        libyajl.so.2 (libc6,x86-64) => /lib64/libyajl.so.2
        libxtables.so.10 (libc6,x86-64) => /lib64/libxtables.so.10
        libxslt.so.1 (libc6,x86-64) => /lib64/libxslt.so.1
        libxshmfence.so.1 (libc6,x86-64) => /lib64/libxshmfence.so.1
        libxml2.so.2 (libc6,x86-64) => /lib64/libxml2.so.2
        libxmlrpc_util.so.3 (libc6,x86-64) => /lib64/libxmlrpc_util.so.3
        libxmlrpc_server_cgi.so.3 (libc6,x86-64) => /lib64/libxmlrpc_server_cgi.so.3
        libxmlrpc_server_abyss.so.3 (libc6,x86-64) => /lib64/libxmlrpc_server_abyss.so.3
....

ldconfig を使用して新しいライブラリを追加

新しい共有ライブラリをシステムに追加するには、まずライブラリをシステムにダウンロードしてディレクトリに配置します。新しいライブラリを追加したら、/etc/ld.so.conf.d ディレクトリに構成ファイルを作成し、ldconfig コマンドを実行します。これらのタスクはすべて root ユーザーとして実行する必要があります:

# ls /usr/lib64/test
mylib.so.1
# cat /etc/ld.so.conf.d/libtest.conf /usr/lib64/test
# ldconfig

ldconfig コマンドが正常に実行された場合、出力はありません。

LD_LIBRARY_PATH 変数

通常のユーザーは ldconfig コマンドを正常に実行できません。ただし、通常のユーザーがカスタム共有ライブラリを使用したい場合、そのユーザーはこのファイルを自分のホーム ディレクトリにダウンロードし、LD_LIBRARY_PATH を使用してカスタム ライブラリ ファイルの場所を次のように指定できます。

$ ls /home/testuser/lib
mylib.so.1
$ LD_LIBRARY_PATH=/home/testuser/lib

有効に実行された場合、最後のコマンドは出力を生成しません。これを永続的な変更にするには、LD_LIBRARY_PATH=/home/testuser/lib を配置します ~/.bashrc のコマンド ファイル。

$ vi ~/.bashrc
LD_LIBRARY_PATH=/home/testuser/lib
export LD_LIBRARY_PATH

ldd コマンド

ldd コマンドを使用すると、特定のコマンドが使用する共有ライブラリを確認できます。 ldd コマンドの構文は次のとおりです。

# ldd [options] FILE

例:

# ldd /bin/ls
        linux-vdso.so.1 =>  (0x00007ffee2b3f000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007ff5a6c22000)
        libcap.so.2 => /lib64/libcap.so.2 (0x00007ff5a6a1d000)
        libacl.so.1 => /lib64/libacl.so.1 (0x00007ff5a6814000)
        libc.so.6 => /lib64/libc.so.6 (0x00007ff5a6447000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007ff5a61e5000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007ff5a5fe1000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ff5a6e49000)
        libattr.so.1 => /lib64/libattr.so.1 (0x00007ff5a5ddc000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff5a5bc0000)

ldd コマンドを使用する目的は、作成中のコードの問題をトラブルシューティングすることです。このコマンドは、どのライブラリが呼び出されているかだけでなく、具体的には各ライブラリがどのディレクトリから呼び出されているかを示します。これは、ライブラリが期待どおりに動作しない場合に非常に役立ちます。

次の表に、ldd コマンドの便利なオプションを示します:

オプション 説明
-v 冗長;追加情報を出力します。
-u 未使用の直接依存関係を表示します。


Cent OS
  1. Linuxgrepコマンドの使用方法

  2. Linuxでhistoryコマンドを使用する方法

  3. Linux screen コマンドの使用方法

  1. Linuxでsudoコマンドを使用する方法

  2. LinuxでSuコマンドを使用する方法

  3. Linux で ipset コマンドを使用する方法

  1. LinuxでDisownコマンドを使用する方法

  2. LinuxSSコマンドの使用方法

  3. Linuxnohupコマンドの使用方法