GNU/Linux >> Belajar Linux >  >> Cent OS

Cara menggunakan Perintah ldconfig di Linux

Perintah ldconfig digunakan untuk memberitahu sistem tentang lokasi baru dari shared library. Informasi penggunaan yang disediakan oleh /etc/ld.so.conf file konfigurasi.

Perintah ldconfig membuat database cache dari semua perpustakaan berdasarkan file konfigurasi. Cache ini biasanya disimpan di /etc/ld.so.cache mengajukan.

Berikut adalah sintaks dari perintah ldconfig:

# ldconfig [option]

Tabel berikut menjelaskan opsi yang berguna untuk perintah ldconfig:

Opsi Deskripsi
-v Verbose; mencetak informasi tambahan.
-n Gunakan opsi baris perintah untuk menentukan lokasi perpustakaan bersama yang baru. Contoh:ldconfig -n /some/directory.
-f Tentukan file konfigurasi yang berbeda daripada default (/etc/ld.so.conf ).
-p Gunakan untuk mencetak daftar perpustakaan saat ini yang disimpan dalam file cache.

File konfigurasi /etc/ld.so.conf

File konfigurasi utama untuk shared library adalah file /etc/ld.so.conf; namun, biasanya hanya ada satu baris dalam file ini:

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

Baris include dalam file ini memberi tahu sistem untuk juga menggunakan semua file konfigurasi di direktori yang ditentukan. Dalam kasus contoh sebelumnya, itu adalah semua file yang diakhiri dengan “.conf” di direktori /etc/ld.so.conf.d.

File konfigurasi itu sendiri sederhana. Itu hanya berisi direktori di mana perpustakaan bersama disimpan:

# 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

Mencantumkan Pustaka yang Di-cache

Untuk membuat daftar pustaka yang di-cache, Anda dapat menggunakan opsi -p dari perintah ldconfig seperti yang ditunjukkan di bawah ini:

# 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
....

Tambahkan perpustakaan baru menggunakan ldconfig

Untuk menambahkan pustaka bersama baru ke sistem, Anda harus mengunduh pustaka ke sistem terlebih dahulu dan menempatkannya ke dalam direktori. Setelah menambahkan pustaka baru, Anda akan membuat file konfigurasi di direktori /etc/ld.so.conf.d dan kemudian menjalankan perintah ldconfig. Semua tugas ini harus dilakukan sebagai pengguna root:

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

Jika perintah ldconfig berhasil dijalankan, tidak akan ada output.

Variabel LD_LIBRARY_PATH

Pengguna biasa tidak berhasil menjalankan perintah ldconfig; namun, jika pengguna biasa ingin menggunakan perpustakaan bersama khusus, maka pengguna tersebut dapat mengunduh file ini ke direktori home-nya dan menggunakan LD_LIBRARY_PATH untuk menunjukkan lokasi file perpustakaan khusus, seperti:

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

Jika dijalankan dengan bermanfaat, perintah terakhir seharusnya tidak menghasilkan output. Untuk menjadikan ini perubahan permanen, tempatkan LD_LIBRARY_PATH=/home/testuser/lib perintah di ~/.bashrc . Anda berkas.

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

Perintah ldd

Anda dapat melihat pustaka bersama apa yang digunakan perintah tertentu dengan menggunakan perintah ldd. Berikut adalah sintaks dari perintah ldd:

# ldd [options] FILE

Misalnya:

# 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)

Tujuan menggunakan perintah ldd adalah untuk memecahkan masalah dengan kode yang Anda tulis. Perintah ini memberi tahu Anda tidak hanya perpustakaan apa yang dipanggil, tetapi secara khusus dari direktori mana setiap perpustakaan dipanggil. Ini bisa sangat berguna ketika perpustakaan tidak berperilaku seperti yang Anda harapkan.

Tabel berikut menjelaskan opsi yang berguna untuk perintah ldd:

Opsi Deskripsi
-v Verbose; mencetak informasi tambahan.
-u Menampilkan semua dependensi langsung yang tidak digunakan.


Cent OS
  1. Cara menggunakan perintah grep Linux

  2. Cara menggunakan perintah history di Linux

  3. Cara menggunakan Perintah Su di Linux

  1. Cara Menggunakan Perintah Sudo di Linux

  2. Cara Menggunakan Perintah Layar Linux

  3. Cara menggunakan Perintah ipset di Linux

  1. Cara Menggunakan Perintah Disown di Linux

  2. Cara Menggunakan Perintah SS Linux

  3. Cara Menggunakan Perintah Linux nohup