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

问题描述 投票:0回答:2

许多 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
yum apt-get apt pkg-config
2个回答
6
投票

对于 apt 来说,如果您有一些软件通过 pkg-config 抱怨缺少软件包,例如:

配置:错误:未满足包要求(gtk+-2.0 >= 2.8):
    
找不到包“gtk+-2.0”
    
如果您考虑调整 PKG_CONFIG_PATH 环境变量
以非标准前缀安装的软件。
    
或者,您可以设置环境变量 GTK_CFLAGS
和 GTK_LIBS 以避免调用 pkg-config。
有关更多详细信息,请参阅 pkg-config 手册页。
错误:无法运行 ./configure,这是配置 banshee 所必需的

那么这意味着配置脚本正在寻找

gtk+-2.0
pkgconfig 包。

那么,你可以做的是:

$ sudo apt install apt-file
...
$ 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 install libgtk2.0-dev

并且依赖性将得到满足。

在原始问题的特定情况下:

$ apt-file search --package-only dbus-glib-1.pc
libdbus-glib-1-dev

(dbus-glib-0 似乎太旧了,无法显示在我的系统中。)


1
投票

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

按路径名安装,如果您知道 .pc 文件的最终位置

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

这适用于任何文件,但您仍然需要猜测 .pc 文件在哪里。最好的方法是使用实际的 pkgconfig 要求:

$> yum install "pkgconfig(foo)"

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

© www.soinside.com 2019 - 2024. All rights reserved.