2010-06-18 7 views
3

Je souhaite installer plusieurs versions d'un package (disons libX) à partir de src. Le paquet (libX) utilise Autotools pour construire, donc suit le ./configure, make, make install convention. Celui qui est installé par défaut va dans/usr/local/bin et/usr/local/lib et je veux installer une autre version de ceci dans/home/user/libX.Installer plusieurs versions d'un package

L'autre problème est que libX est une dépendance pour un autre paquet (disons libY) qui utilise aussi autotools. Comment faire pour que libY pointe vers la version installée dans/home/user/libX? Il pourrait aussi y avoir une possibilité que ce soit un paquet système comme ffmpeg et je veux utiliser la dernière version de svn pour mon code src et donc le construire depuis src. Qu'est-ce que je fais dans ce cas? Quelle est la meilleure pratique dans ce cas afin que je ne casse pas les bibliothèques du système? J'utilise Ubuntu 10.04 et Opensuse 10.3.

Répondre

3

Vous pouvez généralement passer l'option --prefix à configurer pour lui indiquer d'installer la bibliothèque dans un emplacement différent. Donc, pour une version personnelle, vous pouvez généralement l'exécuter comme:

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

et il sera installé dans $HOME/usr/libX/bin, $HOME/usr/libX/lib, $HOME/usr/libX/etc et ainsi de suite.

Si vous générez libY à partir de la source, le script configure utilise généralement l'outil pkg-config pour savoir où un package est stocké. libX aurait dû inclure un fichier .pc dans le répertoire $HOME/usr/libX/lib/pkgconfig qui indique à configure où rechercher les en-têtes et les fichiers de bibliothèque. Vous devrez indiquer à l'outil pkg-config de regarder d'abord dans votre répertoire. Ceci est effectué en définissant PKG_CONFIG_PATH pour inclure votre répertoire en premier. Lors de la configuration libY, essayez

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

man pkg-config devrait donner des détails.

Questions connexes