2010-06-18 276 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應詳細說明。