如何将pkg-config名称映射到yum / apt-get

时间:2013-08-27 21:41:51

标签: yum apt-get apt pkg-config

许多makefile使用pkg-config,但名称与包管理器无关(例如yum / apt)。如何将pkg-config名称映射到它们?有诀窍吗?

示例:如果我yum searchName - 查看名称并接近pkg-config的名称

结果:

$ 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

2 个答案:

答案 0 :(得分:3)

对于apt-get,如果你有一些软件通过pkg-config抱怨这个丢失的包,例如:

configure: error: Package requirements (gtk+-2.0 >= 2.8) were not met:

No package 'gtk+-2.0' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables GTK_CFLAGS
and GTK_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
Error: Could not run ./configure, which is required to configure banshee

然后这意味着configure脚本正在查找gtk+-2.0 pkgconfig包。

然后,你可以做的是:

$ sudo apt-get install apt-file
...
$ apt-file update
...
$ apt-file search 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似乎太老了,无法显示在我的系统中。)

答案 1 :(得分:1)

pkg-config文件通常由-devel包提供,因此在大多数情况下foo.pc由libfoo-devel提供。这仍然是猜测,但有两个捷径:

按路径名安装,如果您知道.pc文件将在何处结束

 $> yum install /usr/lib64/pkgconfig/foo.pc

适用于任何文件,但您仍需要猜测.pc文件的位置。最好的方法是使用实​​际的pkgconfig要求:

$> yum install "pkgconfig(foo)"

使用引号来避免shell尝试解释括号。