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.
Grammaire
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...
Copier après la connexion
Options
-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打印出其帮助信息,而后退出。
Copier après la connexion
Quelques points à noter à propos de ldconfig :
- Il n'est pas nécessaire de modifier /etc/ld.so.conf lors de l'ajout d'éléments à /lib et /usr/lib, mais vous devez ajuster ldconfig après avoir terminé, sinon la bibliothèque ne sera pas trouvée.
- Lorsque vous souhaitez ajouter quelque chose aux deux répertoires ci-dessus, vous devez modifier /etc/ld.so.conf puis appeler ldconfig, sinon il ne sera pas trouvé.
- Par exemple, si vous installez un mysql dans /usr/local/mysql, mysql a beaucoup de bibliothèques sous /usr/local/mysql/lib, alors vous devez ajouter une ligne /usr/local sous /etc/ld. so.conf /mysql/lib, enregistrez-le et ldconfig, et la nouvelle bibliothèque pourra être trouvée lorsque le programme est en cours d'exécution.
- Si vous souhaitez placer lib en dehors de ces deux répertoires, mais que vous ne souhaitez pas ajouter d'éléments à /etc/ld.so.conf (ou si vous n'avez pas la permission d'ajouter des éléments). Ce n'est pas grave, exportez simplement une variable globale LD_LIBRARY_PATH, puis lors de l'exécution du programme, il ira dans ce répertoire pour trouver la bibliothèque. D’une manière générale, il ne s’agit que d’une solution temporaire, utilisée en l’absence d’autorisation ou de besoin temporaire.
- Ces choses que ldconfig fait sont toutes liées au temps d'exécution du programme et n'ont rien à voir avec le temps de compilation. Vous devez toujours ajouter -L lors de la compilation, ne vous y trompez pas.
- En bref, quelles que soient les modifications apportées à la bibliothèque, il est préférable d'utiliser ldconfig, sinon des résultats inattendus se produiront. Cela ne prendra pas beaucoup de temps, mais cela évitera bien des ennuis.
- De plus, l'en-tête du fichier tel que libdb-4.3.so contiendra des informations relatives au nom de la bibliothèque (c'est-à-dire qu'il contient "libdb-4.3.so", qui peut être visualisé avec la commande strings), il suffit donc de modifier le fichier Un nom pour usurper l'identité de quelqu'un qui a été reconnu comme bibliothèque (telle que libdb-4.8.so) ne fonctionnera pas. Pour cela, vous pouvez modifier directement les informations de configuration dans le Makefile de la bibliothèque compilée et spécifier un nom de bibliothèque spécial.
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!