Rumah  >  Artikel  >  Tutorial sistem  >  Penjelasan terperinci tentang command-ldconfig

Penjelasan terperinci tentang command-ldconfig

PHPz
PHPzke hadapan
2024-03-22 13:10:34802semak imbas

Penjelasan terperinci tentang command-ldconfig

ldconfig biasanya dijalankan apabila sistem bermula, tetapi apabila pengguna memasang perpustakaan pautan dinamik baharu, anda perlu menjalankan arahan ini secara manual.

Tatabahasa
ldconfig [-v|--verbose] [-n] [-N] [-X] [-f CONF] [-C CACHE] [-r ROOT] [-l] [-p|--print-cache] [-c FORMAT] [--format=FORMAT] [-V] [-?|--<span class="wp_keywordlink">help</span>|--usage] path...
Pilihan
-v或--verbose:用此选项时,ldconfig将显示正在扫描的目录及搜索到的动态链接库,还有它所创建的连接的名字。
-n:用此选项时,ldconfig仅扫描命令行指定的目录,不扫描默认目录(/lib、/usr/lib),也不扫描配置文件/etc/ld.so.conf所列的目录。
-N:此选项指示ldconfig不重建缓存文件(/etc/ld.so.cache),若未用-X选项,ldconfig照常更新文件的连接。
-X:此选项指示ldconfig不更新文件的连接,若未用-N选项,则缓存文件正常更新。
-f CONF:此选项指定动态链接库的配置文件为CONF,系统默认为/etc/ld.so.conf。
-C CACHE:此选项指定生成的缓存文件为CACHE,系统默认的是/etc/ld.so.cache,此文件存放已排好序的可共享的动态链接库的列表。
-r ROOT:此选项改变应用程序的根目录为ROOT(是调用chroot函数实现的)。选择此项时,系统默认的配置文件/etc/ld.so.conf,实际对应的为ROOT/etc/ld.so.conf。如用-r /usr/zzz时,打开配置文件/etc/ld.so.conf时,实际打开的是/usr/zzz/etc/ld.so.conf文件。用此选项,可以大大增加动态链接库管理的灵活性。
-l:通常情况下,ldconfig搜索动态链接库时将自动建立动态链接库的连接,选择此项时,将进入专家模式,需要手工设置连接,一般用户不用此项。
-p或--print-cache:此选项指示ldconfig打印出当前缓存文件所保存的所有共享库的名字。
-c FORMAT 或 --format=FORMAT:此选项用于指定缓存文件所使用的格式,共有三种:old(老格式),new(新格式)和compat(兼容格式,此为默认格式)。
-V:此选项打印出ldconfig的版本信息,而后退出。
-? 或 --help 或 --usage:这三个选项作用相同,都是让ldconfig打印出其帮助信息,而后退出。

Beberapa perkara yang perlu diberi perhatian tentang ldconfig:

  1. Tidak perlu mengubah suai /etc/ld.so.conf apabila menambahkan perkara pada /lib dan /usr/lib, tetapi anda perlu melaraskan ldconfig selepas selesai, jika tidak perpustakaan tidak akan ditemui.
  2. Apabila anda ingin menambah sesuatu pada dua direktori di atas, anda mesti mengubah suai /etc/ld.so.conf dan kemudian panggil ldconfig, jika tidak, ia tidak akan ditemui.
  3. Sebagai contoh, jika anda memasang mysql ke /usr/local/mysql, mysql mempunyai banyak perpustakaan di bawah /usr/local/mysql/lib, maka anda perlu menambah baris /usr/local di bawah /etc/ld. so.conf /mysql/lib, simpan dan ldconfig, dan perpustakaan baharu boleh ditemui apabila program sedang berjalan.
  4. Jika anda ingin meletakkan lib di luar kedua-dua direktori ini, tetapi anda tidak mahu menambah perkara pada /etc/ld.so.conf (atau anda tidak mempunyai kebenaran untuk menambah perkara). Tidak mengapa, hanya eksport pembolehubah global LD_LIBRARY_PATH, dan kemudian apabila anda menjalankan program, ia akan pergi ke direktori ini untuk mencari perpustakaan. Secara umumnya, ini hanyalah penyelesaian sementara, digunakan apabila tiada kebenaran atau keperluan sementara.
  5. Perkara yang ldconfig lakukan semuanya berkaitan dengan masa berjalan program dan tiada kaitan dengan masa penyusunan. Anda masih perlu menambah -L semasa menyusun, jangan keliru.
  6. Ringkasnya, tidak kira apa perubahan yang dibuat pada perpustakaan, sebaiknya ldconfig, jika tidak beberapa keputusan yang tidak dijangka akan berlaku. Ia tidak akan mengambil banyak masa, tetapi ia akan menjimatkan banyak masalah.
  7. Selain itu, pengepala fail seperti libdb-4.3.so akan mengandungi maklumat yang berkaitan dengan nama perpustakaan (iaitu, ia mengandungi "libdb-4.3.so", yang boleh dilihat dengan arahan rentetan), jadi ubah suai sahaja fail nama untuk menyamar sebagai seseorang yang telah Diiktiraf perpustakaan (seperti libdb-4.8.so) tidak akan berfungsi. Untuk tujuan ini, anda boleh mengubah suai maklumat konfigurasi secara langsung dalam Makefile pustaka yang disusun dan menentukan nama perpustakaan khas.

Atas ialah kandungan terperinci Penjelasan terperinci tentang command-ldconfig. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:linuxprobe.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam