![使用 pkg-config 测试已安装程序的版本?](https://linux22.com/image/137335/%E4%BD%BF%E7%94%A8%20pkg-config%20%E6%B5%8B%E8%AF%95%E5%B7%B2%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F%E7%9A%84%E7%89%88%E6%9C%AC%EF%BC%9F.png)
我正在使用 shell 脚本(而不是 Autotools 脚本)。根据pkg-config(1)
手册页,“返回有关已安装库的元信息”。例如,以下是安装在以下位置的 Nettle 3.4 的检查/usr/local
:
$ pkg-config --exists --print-errors "nettle >= 3.1"
$ echo $?
0
当我尝试检查 Autoconf 时,它返回一个错误。根据手册页,这是预期的:
$ pkg-config --exists --print-errors "autoconf >= 2.63"
Package autoconf was not found in the pkg-config search path.
Perhaps you should add the directory containing `autoconf.pc'
to the PKG_CONFIG_PATH environment variable
No package 'autoconf' found
是否可以用于pkg-config
测试非库包?如果没有,是否有类似的工具可以提供有关已安装程序的信息?
答案1
该pkg-config
工具主要用于查询在编译和链接特定库包时应使用哪些编译器和链接器标志,同时可能断言所述包的特定版本。
该autoconf
软件不提供autoconf.pc
的文件pkg-config
,因为它不提供其他程序可能使用的标头或库(与 类似automake
)。
根据您的 Linux 使用的包管理器,您可能会使用它(或与之相关的一些工具,例如dpkg-query
在基于 Debian 的系统上)来查询已安装包的状态。