【发布时间】:2014-12-11 13:39:47
【问题描述】:
我正在尝试在 Amazon Linux 发行版实例上构建 librsvg。我已经通过 yum 安装了大部分依赖项。在实例上启用了默认 yum 存储库中不可用的一些内容,因此必须从头开始构建它们。我已经走了很远,但被困在最后一点。当为 librsvg 运行 sudo ./configure 时,我得到 No package 'gdk-pixbuf-2.0' found。对于我通过 yum 安装的一些软件包,我确实收到了这条消息,安装这些库的 -dev 版本解决了我的问题。目前 gdk-pixbuf-2.0 是我从源代码安装的唯一库。
以下是缺失库的 pkg-config 结果:
$ pkg-config --list-all | grep pixbuf
> gdk-pixbuf-2.0 GdkPixbuf - Image loading and scaling
$ pkg-config --modversion pixbuf
> 2.26.1
- 为什么找不到这个包?
- -dev/-devel 包通常安装/配置什么?
- 还有其他环境在起作用吗?即 LD_LIBRARY_PATH、CPPFLAGS、LDFLAGS
- 我是否在构建步骤中遗漏了一个可以正确注册此包/lib 的步骤?
【问题讨论】:
-
通常您不需要(或不想)以 root 身份运行
./configure脚本。一般也不是make。make install虽然一般来说确实需要它。 -
您是否必须设置任何 pkg-config 相关的环境变量才能让
pkg-config找到它?sudo 'pkg-config --list-all | grep pixbuf'找到了吗? -
是的,我必须手动设置
PKG_CONFIG_PATH。我搜索了 gdk-pixbuf-2.0.pc 文件并将该路径添加到PKG_CONFIG_PATH。 -
以非 root 用户身份运行
./configure会产生./configure: line 2097: config.log: Permission denied。 -
是的,一旦您以 root 身份运行它,它就会触及各种文件并导致权限问题。您需要修复目录中的所有 root 拥有的文件,然后才能以非 root 身份运行它。