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



许多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试图解释括号。

最新更新