Maison  >  Article  >  Opération et maintenance  >  Qu'est-ce que Linux ldconfig

Qu'est-ce que Linux ldconfig

藏色散人
藏色散人original
2023-03-28 09:56:112170parcourir

linux ldconfig est une commande de gestion de bibliothèque de liens dynamiques ; principalement dans les répertoires répertoriés dans les répertoires de recherche par défaut "/lib" et "/usr/lib" et le fichier de configuration de bibliothèque dynamique "/etc/ld.so.conf", recherche de bibliothèques de liens dynamiques partageables ; ldconfig est généralement exécuté au démarrage du système, et lorsque l'utilisateur installe une nouvelle bibliothèque de liens dynamiques, la commande ldconfig doit être exécutée manuellement.

Qu'est-ce que Linux ldconfig

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.

Qu'est-ce que Linux ldconfig ?

ldconfig est une commande de gestion de bibliothèque de liens dynamiques Le but de la commande est principalement de rechercher le répertoire par défaut (/lib et /usr/lib) et le fichier de configuration de la bibliothèque dynamique /. etc/ld Dans les répertoires répertoriés dans .so.conf, recherchez la bibliothèque de liens dynamiques partageables (le format est tel qu'introduit précédemment, lib*.so*), puis créez un le chargeur dynamique (ld.so) nécessite des fichiers de connexion et de cache. Le fichier de cache est par défaut /etc/ld.so.cache. Ce fichier enregistre les liens dynamiques triés. liste de noms. 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 est généralement exécuté au démarrage du système, mais lorsque l'utilisateur installe une nouvelle bibliothèque de liens dynamiques, vous devez exécuter cette commande manuellement.

Description du paramètre de commande ldconfig :

🎜1, -v ou –verbose : Lorsque vous utilisez cette option, ldconfig affichera le répertoire en cours d'analyse et la bibliothèque de liens dynamiques recherchée, et le nom de la connexion qu'il crée. 🎜🎜2. -n : Lorsque vous utilisez cette option, ldconfig analyse uniquement le répertoire spécifié sur la ligne de commande, pas le répertoire par défaut (/lib, /usr/lib), ni la configuration. répertoire répertorié dans le fichier /etc/ld.so.conf 🎜🎜3. -N : Cette option indique à ldconfig de ne pas reconstruire le fichier cache (/etc/ld.so.cache). , ldconfig sera mis à jour comme d'habitude. Connexion au fichier. 🎜🎜4, -X : Cette option indique à ldconfig de ne pas mettre à jour la connexion au fichier. Si l'option -N n'est pas utilisée, le fichier cache est mis à jour normalement. CONF : Cette option spécifie la configuration de la bibliothèque de liens dynamiques. Le fichier est CONF. La valeur par défaut du système est /etc/ld.so.conf.🎜🎜6 -C CACHE : Cette option spécifie que le fichier de cache généré est CACHE. La valeur par défaut du système est /etc/ld.so.cache. Ce fichier est stocké dans Une liste triée de bibliothèques de liens dynamiques partageables 🎜🎜7. -r ROOT : Cette option modifie le répertoire racine de l'application en ROOT (implémenté en appelant le. chroot). Lorsque cette option est sélectionnée, la configuration par défaut du système. Le fichier /etc/ld.so.conf correspond en fait à ROOT/etc/ld.so.conf. Par exemple, lors de l'utilisation de -r/usr/zzz. en ouvrant le fichier de configuration /etc/ld.so.conf, il s'ouvre en fait. Il s'agit du fichier /usr/zzz/etc/ld.so.conf. L'utilisation de cette option peut considérablement augmenter la flexibilité de la gestion de la bibliothèque de liens dynamiques 🎜🎜8. . -l : Normalement, ldconfig créera automatiquement une bibliothèque de liens dynamiques lors de sa recherche. Lorsque vous sélectionnez cette option, vous entrerez en mode expert et devrez configurer manuellement la connexion. Les utilisateurs généraux n'ont pas besoin de cette option. 🎜🎜9, -p ou –print-cache : Cette option demande à ldconfig d'imprimer les fichiers enregistrés dans le cache actuel. Les noms de toutes les bibliothèques partagées 🎜🎜10, -c FORMAT ou –format=FORMAT : Cette option est. utilisé pour spécifier le format utilisé pour les fichiers de cache. Il existe trois types : ld (ancien format), new (nouveau format) et compat (format compatible, c'est le format par défaut).🎜🎜11, -V : Cette option imprime les informations de version de ldconfig, puis quitte.🎜🎜12, - ou --help ou –usage : Ces trois options ont le même effet. Laissez ldconfig imprimer ses informations d'aide, puis quittez 🎜🎜

Choses à noter dans ldconfig :

🎜1. Ajoutez des éléments à /lib et /usr/lib, il n'est pas nécessaire de modifier le fichier /etc/ld.so.conf, mais vous vous devez appeler ldconfig après l'avoir ajouté, sinon la bibliothèque ajoutée ne sera pas trouvée. 🎜🎜2. Si la bibliothèque ajoutée n'est pas dans /lib et /usr/lib, vous devez modifier le fichier /etc/ld.so.conf, ajouter le chemin de la bibliothèque au fichier, puis appeler la commande ldconfig. encore. Ou ajoutez le fichier *.conf sous /etc/ld.so.conf.d/ et ajoutez le chemin de la bibliothèque, puis exécutez ldconfig. Par exemple, lors de l'installation de MySQL, son fichier de bibliothèque /usr/local/mysql/lib doit être ajouté au fichier /etc/ld.so.conf. La commande est la suivante : 🎜
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${my_HOME}/lib
🎜Afficher toutes les bibliothèques partagées enregistrées dans le fichier cache🎜rrreee🎜3 Si la bibliothèque ajoutée n'est pas sous /lib ou /usr/lib et n'a pas l'autorisation d'écrire le /etc/ld. fichier so.conf, pour le moment, il vous suffit de mettre le chemin dans le changement d'environnement 🎜LD_LIBRARY_PATH🎜. 🎜🎜Vous pouvez utiliser la commande 🎜export🎜 pour prendre effet temporairement🎜rrreee🎜La méthode ci-dessus ne définit que temporairement la variable 🎜LD_LIBRARY_PATH🎜 Cette variable sera invalide la prochaine fois que l'ordinateur sera allumé. Comment écrire en continu cette valeur dans LD_LIBRARY_PATH. ? 🎜🎜Nous pouvons ajouter des déclarations d'exportation dans 🎜~/.bashrc🎜 ou 🎜~/.bash_profile🎜 La première est lue une fois à chaque fois que vous vous connectez et à chaque fois que vous ouvrez le shell, tandis que la seconde n'est lue qu'une seule fois lorsque vous vous connectez. dans. Mon habitude est de l'ajouter à 🎜~/.bashrc🎜 À la fin du fichier, vous pouvez utiliser l'instruction suivante pour rendre les paramètres effectifs : 🎜rrreee🎜Ce qui précède est le format bash. pour configurer les variables d'environnementcsh est différent : 🎜rrreee🎜Après modification, pensez à fermer le terminal actuel et à rouvrir un nouveau terminal pour que la configuration ci-dessus puisse prendre effet. 🎜

Apprentissage recommandé : "Tutoriel vidéo Linux"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn