许多makefile都使用pkg config,但它们的名称与软件包管理器(例如,yum/apt)无关。如何将pkg配置名称映射到它们?有什么把戏吗?
示例:如果我执行yum searchName
——查看名称并近似于pkg配置的名称
结果:
$ pkg-config --libs dbus-glib-0
Package dbus-glib-0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `dbus-glib-0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'dbus-glib-0' found
$ sudo yum install dbus-glib
Loaded plugins: langpacks, refresh-packagekit
Package dbus-glib-0.100-5.fc19.i686 already installed and latest version
Nothing to do
$ sudo yum install dbus-glib-0
Loaded plugins: langpacks, refresh-packagekit
No package dbus-glib-0 available.
Error: Nothing to do
在apt-get的情况下,如果您有一些软件通过pkg配置抱怨这个丢失的包,例如:
configure:error:未满足程序包要求(gtk+-2.0>=2.8):未找到包"gtk+-2.0"如果您以非标准前缀安装的软件。或者,您可以设置环境变量GTK_CFLAGS和GTK_LIBS,以避免需要调用pkg config。有关更多详细信息,请参阅pkg配置手册页。错误:无法运行/configure,这是配置女妖所必需的
这意味着configure脚本正在查找gtk+-2.0
pkgconfig包。
然后,你可以做的是:
$sudo apt-get安装apt文件。。。$apt文件更新。。。$apt文件搜索gtk+-2.0|grep"\.pc"libgtk2.0-dev:/usr/lib/x86_64-linux-gnu/pkgconfig/gtk+2.0.pc
这意味着您可以安装程序包libgtk2.0-dev:
sudo apt-get install libgtk2.0-dev
依赖性也会得到满足。
在原始问题的特定情况下:
$ apt-file search --package-only dbus-glib-1.pc
libdbus-glib-1-dev
(dbus-glib-0似乎太旧了,无法在我的系统中显示。)
pkg配置文件通常由-devel包提供,因此在大多数情况下,foo.pc由libfoo-devel提供。这仍然是猜测,但有两条捷径:
按路径名安装,如果你知道.pc文件将在的哪里结束
$> yum install /usr/lib64/pkgconfig/foo.pc
这适用于任何文件,但你仍然需要猜测.pc文件在哪里。最好的方法是使用实际的pkgconfig要求:
$> yum install "pkgconfig(foo)"
使用引号可以避免shell试图解释括号。