告诉pkg-config在系统范围内的/ usr / local / lib / pkgconfig中也查找* .pc文件


8

目前pkg-config只在中显示/usr/lib/pkgconfig。我可以通过导出PKG_CONFIG_PATH环境变量来为用户调整它,但是我又一次忘记了为root用户设置它,并且浪费了时间,想知道为什么我的插件未正确安装(使用了makefile pkg-config)。那么,如何在整个系统范围内设置它,以便始终查看/usr/lib/usr/local/lib

Answers:


3

在系统范围内定义环境变量的传统位置是/etc/profile。当您登录本地(在文本模式控制台上)或远程(通过ssh)进行文本模式会话时,该文件将由Bourne样式的shell(包括bash,ksh,ash)读取。如果您在图形环境中登录,则/etc/profile可能会或可能不会读取,这取决于您的登录管理器,桌面环境和操作系统分发。

更好的方法(如果在系统上可用)是在中定义环境变量/etc/environment。该文件由PAM(特别是pam_env模块)读取。在使用PAM的登录方法启动的所有会话中,这些变量均可用,并且pam_env/etc/pam.conf或中引用了模块/etc/pam.d/$method


-2

尽管不是100%可靠的方法,但最简单的方法可能是将其添加到中/etc/bashrc

这是不可靠的,因为任何个人用户都可以设置为不处理/etc/bashrc

如果您想采用更复杂的方法,则可以创建一个包装器来对其进行设置。首先,您将重命名pkg-configpkg-config-real,然后创建一个新的脚本pkg-config,该脚本将设置变量。

(以root用户身份,或使用sudo)

cd /usr/bin
mv pkg-config pkg-config-real

然后在/ usr / bin / pkg-config中使用以下内容创建一个新文件:

#!/bin/bash
export PKG_CONFIG_PATH=/usr/lib:/usr/local/lib
pkg-config-real $*

确保使其可执行。

chmod 755 pkg-config

2
/etc/bashrc在不正确的位置,请参见.bashrc和.bash_profile之间的区别。您不建议您在中修改文件/usr/bin;最好从那里创建/usr/local/bin/pkg-config并致电/usr/bin/pkg-config。在脚本中,您必须使用"$@",而不是$*; 进一步改进:#!/bin/shexec pkg-config-real
吉尔(Gilles)“所以,别再邪恶了”,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.