190 votes

Faire installer, mais pas aux répertoires par défaut ?

Je veux lancer 'make install' donc j'ai tout ce dont j'ai besoin, mais j'aimerais qu'il installe les choses dans leur propre dossier par opposition à/usr/bin etc. est-ce possible ? même s'il fait référence à des outils dans/usr/bin etc. ?

262voto

Thomas Points 63635

Ça dépend du paquet. Si le Makefile est généré par des outils automatiques GNU (./configure), vous pouvez généralement définir l'emplacement cible comme suit :

./configure --prefix=/somewhere/else/than/usr/local

Si le Makefile n'est pas généré par des outils automatiques, mais distribué avec le logiciel, il suffit de l'ouvrir dans un éditeur et de le modifier. Le répertoire cible d'installation est probablement défini dans une variable quelque part.

72voto

Andor Points 639

Puisque je ne sais pas quelle version d'automake vous pouvez utiliser la variable d'environnement DESTDIR.
Voir Makefile pour en être sûr.

Par exemple :

 export DESTDIR="$HOME/Software/LocalInstall" && make -j4 install

44voto

samasat Points 549
make DESTDIR=./new/customized/path install

Cette commande rapide a fonctionné pour moi pour l'installation de la version 3.2.0 de opencv sur Ubuntu 16. Le chemin DESTDIR peut être relatif aussi bien qu'absolu.

Une telle redirection peut également être utile dans le cas où l'utilisateur n'a pas de privilèges d'administrateur tant que l'emplacement DESTDIR a un droit d'accès pour l'utilisateur. par exemple /home//

20voto

Nestor Points 41

Cela peut dépendre de ce qui est pris en charge par le module que vous essayez de compiler. Si votre makefile est généré en utilisant des outils automatiques, utilisez :

--prefix=<myinstalldir>

lors de l'exécution de ./configure

certains paquets vous permettent également de remplacer lors de l'exécution :

make prefix=<myinstalldir>

cependant, si vous n'utilisez pas./configure, la seule façon d'en être sûr est d'ouvrir le makefile et de vérifier. Il devrait être l'une des premières variables en haut.

5voto

eli Points 571

Si le paquet fournit un Makefile.PL - on peut utiliser :

perl Makefile.PL PREFIX=/home/my/local/lib LIB=/home/my/local/lib
make
make test
make install

* Explication supplémentaire : https://www.perlmonks.org/?node_id=564720

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X