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

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

目前pkg-config仅在/usr/lib/pkgconfig.我可以通过导出环境变量来为用户调整它PKG_CONFIG_PATH,但我再次忘记为 root 执行此操作,并浪费时间想知道为什么我的插件没有正确安装(使用的 makefile pkg-config)。那么如何在系统范围内设置它,以便它总是查看 和/usr/lib/usr/local/lib

答案1

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

更好的方法(如果您的系统上可用)是在 中定义环境变量/etc/environment。该文件的读取者为聚丙烯酰胺,具体由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

相关内容