Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Was ist Linux ldconfig

Was ist Linux ldconfig

藏色散人
藏色散人Original
2023-03-28 09:56:112155Durchsuche

linux ldconfig ist ein Verwaltungsbefehl für dynamische Linkbibliotheken; hauptsächlich in den Verzeichnissen, die in den Standardsuchverzeichnissen „/lib“ und „/usr/lib“ aufgeführt sind, sowie in der dynamischen Bibliothekskonfigurationsdatei „/etc/ld.so.conf“. Suche nach gemeinsam nutzbaren dynamischen Linkbibliotheken; ldconfig wird normalerweise beim Systemstart ausgeführt, und wenn der Benutzer eine neue dynamische Linkbibliothek installiert, muss der Befehl ldconfig manuell ausgeführt werden.

Was ist Linux ldconfig

Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.

Was ist Linux ldconfig?

ldconfig ist ein Verwaltungsbefehl für dynamische Linkbibliotheken. Der Zweck des Befehls besteht hauptsächlich darin, das Standardverzeichnis (/lib und /usr/lib) und die dynamische Bibliothekskonfigurationsdatei / zu durchsuchen. etc/ld Suchen Sie im in .so.conf aufgeführten Verzeichnis nach der gemeinsam nutzbaren Dynamic Link Library (das Format ist wie zuvor eingeführt, lib*.so*) und erstellen Sie dann eine Dynamic Loader (ld.so) erforderliche Verbindungs- und Cache-Dateien. Die Cache-Datei ist standardmäßig /etc/ld.so.cache. Diese Datei speichert die sortierten dynamischen Links Namensliste. ldconfig是一个动态链接库管理命令,命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.

ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。

ldconfig命令参数说明:

1、-v或–verbose:用此选项时,ldconfig将显示正在扫描的目录及搜索到的动态链接库,还有它所创建的连接的名字.

2、-n :用此选项时,ldconfig仅扫描命令行指定的目录,不扫描默认目录(/lib,/usr/lib),也不扫描配置文件/etc/ld.so.conf所列的目录.

3、-N :此选项指示ldconfig不重建缓存文件(/etc/ld.so.cache).若未用-X选项,ldconfig照常更新文件的连接.

4、-X : 此选项指示ldconfig不更新文件的连接.若未用-N选项,则缓存文件正常更新.

5、-f CONF : 此选项指定动态链接库的配置文件为CONF,系统默认为/etc/ld.so.conf.

6、-C CACHE :此选项指定生成的缓存文件为CACHE,系统默认的是/etc/ld.so.cache,此文件存放已排好序的可共享的动态链接库的列表.

7、-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文件.用此选项,可以大大增加动态链接库管理的灵活性.

8、-l :通常情况下,ldconfig搜索动态链接库时将自动建立动态链接库的连接.选择此项时,将进入专家模式,需要手工设置连接.一般用户不用此项.

9、-p或–print-cache :此选项指示ldconfig打印出当前缓存文件所保存的所有共享库的名字.

10、-c FORMAT 或–format=FORMAT :此选项用于指定缓存文件所使用的格式,共有三种:ld(老格式),new(新格式)和compat(兼容格式,此为默认格式).

11、-V : 此选项打印出ldconfig的版本信息,而后退出.

12、- 或 --help 或–usage : 这三个选项作用相同,都是让ldconfig打印出其帮助信息,而后退出.

ldconfig需要注意的地方:

1、往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf文件的,但是添加完后需要调用下ldconfig,不然添加的library会找不到。

2、如果添加的library不在/lib和/usr/lib里面的话,就需要修改/etc/ld.so.conf文件,往该文件追加library所在的路径,然后也需要重新调用下ldconfig命令。或者在/etc/ld.so.conf.d/下添加*.conf的文件并追加library的路径,然后执行ldconfig。比如在安装MySQL的时候,其库文件/usr/local/mysql/lib,就需要追加到/etc/ld.so.conf文件中。命令如下:

# echo "/usr/local/mysql/lib" >>/etc/ld.so.conf
# ldconfig -v | grep mysql

查看缓存文件所保存的所有共享库

# ldconfig -p

3、如果添加的library不在/lib或/usr/lib下,且没有权限操作写/etc/ld.so.conf文件的话,这时只需要将路径放到LD_LIBRARY_PATH环境变更就可以了。

可以用命令 export 来临时生效

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

以上做法,只是临时设置变量 LD_LIBRARY_PATH ,下次开机这个变量将失效;如何把这个值持续写到 LD_LIBRARY_PATH 里呢?

我们可以在 ~/.bashrc 或者 ~/.bash_profile 中加入 export 语句,前者在每次登陆和每次打开 shell 都读取一次,后者只在登陆时读取一次。我的习惯是加到 ~/.bashrc 中.在该文件的未尾,可采用如下语句来使设置生效:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

以上是bash配置环境变量的格式csh

ldconfig wird normalerweise beim Systemstart ausgeführt, aber wenn der Benutzer eine neue dynamische Linkbibliothek installiert, müssen Sie diesen Befehl manuell ausführen.

ldconfig-Befehlsparameterbeschreibung:

🎜1, -v oder –verbose: Bei Verwendung dieser Option zeigt ldconfig das gescannte Verzeichnis und die durchsuchte Dynamic Link Library an. und den Namen der Verbindung, die es erstellt. 🎜🎜2. Bei Verwendung dieser Option scannt ldconfig nur das in der Befehlszeile angegebene Verzeichnis, nicht das Standardverzeichnis (/lib, /usr/lib) und auch nicht die Konfiguration Verzeichnis, das in der Datei /etc/ld.so.conf.🎜🎜3 aufgeführt ist. -N: Diese Option weist ldconfig an, die Cache-Datei (/etc/ld.so.cache) nicht neu zu erstellen , ldconfig wird wie gewohnt aktualisiert. Dateiverbindung 🎜🎜4, -X: Diese Option weist ldconfig an, die Dateiverbindung nicht zu aktualisieren CONF: Diese Option gibt die Konfiguration der Dynamic Link Library an. Die Systemvorgabe ist /etc/ld.so.conf.🎜🎜6 -C CACHE: Diese Option gibt an, dass die generierte Cache-Datei CACHE ist Der Systemstandard ist /etc/ld.so.cache. Diese Datei wird in einer sortierten Liste gemeinsam nutzbarer dynamischer Linkbibliotheken gespeichert. -r ROOT: Diese Option ändert das Stammverzeichnis der Anwendung in ROOT (implementiert durch Aufrufen von chroot-Funktion). Wenn diese Option ausgewählt ist, entspricht die System-Standardkonfiguration der Datei /etc/ld.so.conf tatsächlich ROOT/etc/ld.so.conf Beim Öffnen der Konfigurationsdatei /etc/ld.so.conf wird tatsächlich die Datei /usr/zzz/etc/ld.so.conf geöffnet. Die Verwendung dieser Option kann die Flexibilität der dynamischen Linkbibliotheksverwaltung erheblich erhöhen . -l: Normalerweise erstellt ldconfig automatisch eine dynamische Linkbibliothek. Wenn Sie diese Option auswählen, müssen Sie die Verbindung nicht manuell einrichten . 🎜🎜9, -p oder –print-cache: Diese Option weist ldconfig an, die im aktuellen Cache gespeicherten Dateien auszudrucken. 🎜🎜10, -c FORMAT oder –format=FORMAT: Diese Option ist Wird verwendet, um das für Cache-Dateien verwendete Format anzugeben. Es gibt drei Typen: ld (altes Format), new (neues Format) und compat (kompatibles Format, dies ist das Standardformat).🎜🎜11, -V: Diese Option wird ausgedruckt die Versionsinformationen von ldconfig und wird dann beendet. 🎜🎜12, - oder --help oder –usage: Diese drei Optionen haben den gleichen Effekt. Dinge, die in ldconfig zu beachten sind:🎜1. Dinge zu /lib und /usr/lib hinzufügen. Es besteht keine Notwendigkeit, die Datei /etc/ld.so.conf zu ändern, aber Sie Nach dem Hinzufügen muss ldconfig aufgerufen werden, andernfalls wird die hinzugefügte Bibliothek nicht gefunden. 🎜🎜2. Wenn sich die hinzugefügte Bibliothek nicht in /lib und /usr/lib befindet, müssen Sie die Datei /etc/ld.so.conf ändern, den Pfad der Bibliothek zur Datei hinzufügen und dann den Befehl ldconfig aufrufen wieder. Oder fügen Sie die *.conf-Datei unter /etc/ld.so.conf.d/ hinzu, hängen Sie den Bibliothekspfad an und führen Sie dann ldconfig aus. Wenn Sie beispielsweise MySQL installieren, muss die Bibliotheksdatei /usr/local/mysql/lib an die Datei /etc/ld.so.conf angehängt werden. Der Befehl lautet wie folgt: 🎜
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${my_HOME}/lib
🎜Alle in der Cache-Datei gespeicherten gemeinsam genutzten Bibliotheken anzeigen🎜rrreee🎜3 Wenn sich die hinzugefügte Bibliothek nicht unter /lib oder /usr/lib befindet und keine Berechtigung zum Schreiben von /etc/ld hat. so.conf-Datei. Zu diesem Zeitpunkt müssen Sie nur den Pfad in die Umgebungsänderung 🎜LD_LIBRARY_PATH🎜 eingeben. 🎜🎜Sie können den Befehl 🎜export🎜 verwenden, um vorübergehend wirksam zu werden🎜rrreee🎜Die obige Methode setzt die Variable 🎜LD_LIBRARY_PATH🎜 nur vorübergehend, wenn der Computer das nächste Mal eingeschaltet wird. So wird dieser Wert kontinuierlich in LD_LIBRARY_PATH geschrieben ? 🎜🎜Wir können Exportanweisungen in 🎜~/.bashrc🎜 oder 🎜~/.bash_profile🎜 hinzufügen. Ersteres wird bei jeder Anmeldung und jedem Öffnen der Shell einmal gelesen, während letzteres nur einmal bei der Anmeldung gelesen wird In. Ich habe es mir zur Gewohnheit gemacht, es zu 🎜~/.bashrc🎜 hinzuzufügen. Am Ende der Datei können Sie die folgende Anweisung verwenden, um die Einstellungen wirksam zu machen: 🎜rrreee🎜Das Obige ist das Format von bash Um Umgebungsvariablen zu konfigurierencsh ist anders: 🎜rrreee🎜Denken Sie nach der Änderung daran, das aktuelle Terminal zu schließen und ein neues Terminal erneut zu öffnen, damit die obige Konfiguration wirksam werden kann. 🎜

Empfohlenes Lernen: „Linux-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist Linux ldconfig. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Ist Android ein Linux-Kernel?Nächster Artikel:Ist Android ein Linux-Kernel?