Je veux lancer 'make install' pour avoir tout ce dont j'ai besoin, mais j'aimerais qu'il installe les choses dans leur propre dossier par opposition à / usr / bin du système, etc. est-ce possible? même s'il fait référence à des outils dans / usr / bin etc.?
148
Réponses:
Cela dépend du paquet. Si le Makefile est généré par GNU autotools (
./configure
), vous pouvez généralement définir l'emplacement cible comme suit:Si le Makefile n'est pas généré par les autotools, mais distribué avec le logiciel, ouvrez-le simplement dans un éditeur et modifiez-le. Le répertoire cible de l'installation est probablement défini dans une variable quelque part.
la source
make && make install
suivre la clause configure?--prefix
est que si vous exécutez unstrings
sur le binaire résultant par la suite, vous voyez que le chemin est stocké à l'intérieur. Je ne sais pas pourquoi cela se produit, mais je ne veux certainement pas que les chemins de ma machine soient sur des binaires que j'expédie à d'autres utilisateurs.Puisque vous ne savez pas quelle version d'automake vous pouvez utiliser la variable d'environnement DESTDIR .
Voir Makefile pour être sûr.
Par exemple:
la source
Cette commande rapide a fonctionné pour moi pour l'installation d'opencv version 3.2.0 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 le droit d'accès pour l'utilisateur. par exemple / home //
la source
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é à l'aide d'autotools, utilisez:
--prefix=<myinstalldir>
lors de l'exécution de ./configure
certains packages vous permettent également de remplacer lors de l'exécution:
cependant, si vous n'utilisez pas ./configure, le seul moyen d'en être sûr est d'ouvrir le fichier makefile et de vérifier. Ce devrait être l'une des premières variables en haut.
la source
make prefix=...
peut entraîner des binaires avec de mauvais chemins codés en dur, car ceux-ci ne peuvent généralement pas être modifiés après./configure --prefix=...
Si le paquet fournit un
Makefile.PL
- on peut utiliser:* explication supplémentaire: https://www.perlmonks.org/?node_id=564720
la source
J'ai essayé les solutions ci-dessus. Aucun n'a fonctionné.
À la fin, j'ai ouvert le fichier Makefile et changé manuellement le chemin du préfixe vers le chemin d'installation souhaité comme ci-dessous.
Quand j'ai essayé --prefix, "make" s'est plaint qu'il n'y avait pas une telle entrée de commande. Cependant, peut-être que certains paquets acceptent --prefix qui est bien sûr une solution plus propre.
la source
--prefix
option est à./configure
laquelle vous appelez AVANTmake
.essayez d'utiliser INSTALL_ROOT.
la source