2010-06-18 194 views
3

我想从src安装软件包的多个版本(比如libX)。包(libX)使用Autotools来构建,所以遵循./configure,make,make install约定。默认安装的是/ usr/local/bin和/ usr/local/lib,我想在/ home/user/libX中安装另一个版本。安装多个版本的软件包

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

我使用的是Ubuntu 10.04和Opensuse 10.3。

回答

3

您通常可以通过--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文件,它告诉配置在哪里查找标题和库文件。您将需要告诉pkg-config工具先查看您的目录。

这是通过将PKG_CONFIG_PATH设置为首先包含您的目录来完成的。 在配置立白,尽量

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

man pkg-config应详细说明。

相关问题