安装包的多个版本

时间:2010-06-18 21:32:44

标签: linux installation

我想从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。

1 个答案:

答案 0 :(得分:4)

您通常可以通过--prefix选项进行配置,告诉它将库安装在其他位置。因此,对于个人版本,您通常可以将其运行为:

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

它将安装在$HOME/usr/libX/bin$HOME/usr/libX/lib$HOME/usr/libX/etc等等。

如果从源代码构建libY,配置脚本通常使用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应该提供详细信息。