ldconfig wird normalerweise beim Systemstart ausgeführt. Wenn der Benutzer jedoch eine neue Dynamic Link Library installiert, müssen Sie diesen Befehl manuell ausführen.
Grammatik
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...
Nach dem Login kopieren
Optionen
-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打印出其帮助信息,而后退出。
Nach dem Login kopieren
Ein paar Dinge, die Sie zu ldconfig beachten sollten:
- Es besteht keine Notwendigkeit, /etc/ld.so.conf zu ändern, wenn Sie Dinge zu /lib und /usr/lib hinzufügen, aber Sie müssen ldconfig nach Abschluss anpassen, sonst wird die Bibliothek nicht gefunden.
- Wenn Sie den beiden oben genannten Verzeichnissen etwas hinzufügen möchten, müssen Sie /etc/ld.so.conf ändern und dann ldconfig aufrufen, sonst wird es nicht gefunden.
- Wenn Sie beispielsweise MySQL in /usr/local/mysql installieren und MySQL viele Bibliotheken unter /usr/local/mysql/lib hat, müssen Sie eine Zeile /usr/local unter /etc/ld hinzufügen. so.conf /mysql/lib, speichern Sie es und ldconfig es, und die neue Bibliothek kann gefunden werden, wenn das Programm ausgeführt wird.
- Wenn Sie lib außerhalb dieser beiden Verzeichnisse ablegen möchten, aber keine Dinge zu /etc/ld.so.conf hinzufügen möchten (oder keine Berechtigung zum Hinzufügen von Dingen haben). Das ist in Ordnung, exportieren Sie einfach eine globale Variable LD_LIBRARY_PATH, und wenn Sie das Programm ausführen, wird es in dieses Verzeichnis wechseln, um die Bibliothek zu finden. Im Allgemeinen handelt es sich dabei nur um eine vorübergehende Lösung, die dann zum Einsatz kommt, wenn keine Genehmigung oder vorübergehende Notwendigkeit besteht.
- Diese Dinge, die ldconfig tut, hängen alle mit der Laufzeit des Programms zusammen und haben nichts mit der Kompilierungszeit zu tun. Sie müssen beim Kompilieren immer noch -L hinzufügen, lassen Sie sich nicht verwirren.
- Kurz gesagt, egal welche Änderungen an der Bibliothek vorgenommen werden, es ist am besten, ldconfig zu verwenden, da sonst einige unerwartete Ergebnisse auftreten. Es wird nicht viel Zeit in Anspruch nehmen, aber es wird eine Menge Ärger ersparen.
- Darüber hinaus enthält der Dateiheader wie libdb-4.3.so Informationen zum Bibliotheksnamen (d. h. er enthält „libdb-4.3.so“, das mit dem Befehl strings angezeigt werden kann), also ändern Sie einfach die Datei name, um sich als jemand auszugeben, der in erkannten Bibliotheken (z. B. libdb-4.8.so) erkannt wurde, funktioniert nicht. Zu diesem Zweck können Sie die Konfigurationsinformationen im Makefile der kompilierten Bibliothek direkt ändern und einen speziellen Bibliotheksnamen angeben.
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung von command-ldconfig. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!