我想从src安装一个包的多个版本(比如libX).包(libX)使用Autotools构建,因此遵循./configure,make,make安装约定.默认情况下安装的是/usr/local/bin和/usr/local/lib,我想在/ home / user / libX中安装另一个版本.

另一个问题是libX是另一个包(比如libY)的依赖项,它也使用autotools.如何让libY指向/ home / user / libX中安装的版本?也有可能它的系统包像ffmpeg和我想使用最新的svn版本为我的src代码,因此从src构建它.在那种情况下我该怎么办?在这种情况下,最佳做法是什么,以便我不破坏系统库?

我正在使用Ubuntu 10.04和Opensuse 10.3.

解决方法:


您通常可以通过–prefix选项进行配置,以告知它在不同的位置安装库.因此,对于个人版本,您通常可以将其运行为:

./configure --prefix=$HOME/usr/libX

它将安装在$HOME /usr/libX / bin,$HOME /usr/libX / lib,$HOME /usr/libX / etc等中.

如果要从源构建libY,则configure脚本通常使用pkg-config工具来查找存储包的位置. libX应该在$HOME /usr/libX / lib / pkgconfig目录中包含一个.pc文件,它告诉configure在哪里查找头文件和库文件.您需要先告诉pkg-config工具查看您的目录.

这是通过将PKG\_CONFIG\_PATH设置为首先包含您的目录来完成的.
配置libY时,请尝试

PKG_CONFIG_PATH=$HOME/usr/libX/lib/pkgconfig:/usr/local/lib/pkgconfig ./configure

man pkg-config应该提供详细信息.

标签: linux, installation

相关文章推荐

添加新评论,含*的栏目为必填