Je veux utiliser 'make install' pour avoir tout ce dont j'ai besoin, mais j'aimerais que les choses soient installées 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.?
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 de la manière suivante:
./configure --prefix=/somewhere/else/than/usr/local
Si le Makefile n'est pas généré par autotools, mais distribué avec le logiciel, ouvrez-le simplement dans un éditeur et modifiez-le. Le répertoire cible d'installation est probablement défini dans une variable quelque part.
Puisque je ne sais pas quelle version d’automake vous pouvez utiliserDESTDIRvariable d’environnement.
Voir Makefile pour en être sûr.
Par exemple:
export DESTDIR="$HOME/Software/LocalInstall" && make -j4 install
Cela peut dépendre de ce qui est supporté par le module que vous essayez de compiler. Si votre makefile est généré en utilisant autotools, 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, le seul moyen de vous en assurer est d'ouvrir le fichier makefile et de le vérifier. Ce devrait être l'une des premières variables au sommet.
make DESTDIR=./new/customized/path install
Cette commande rapide a fonctionné pour moi pour l'installation de la version 3.2.0 d'Opencv sur Ubuntu 16. Le chemin DESTDIR peut être relatif ou absolu.
Une telle redirection peut également être utile dans le cas où l'utilisateur ne dispose pas des privilèges d'administrateur tant que l'emplacement DESTDIR dispose d'un accès correct pour l'utilisateur. par exemple/home //
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
J'ai essayé les solutions ci-dessus. Aucun n'a travaillé.
Finalement, j'ai ouvert le fichier Makefile et changé manuellement le chemin du préfixe en chemin d'installation souhaité, comme ci-dessous.
PREFIX ?= "installation path"
Quand j'ai essayé --prefix, "make" s'est plaint de l'absence d'une telle entrée de commande. Cependant, certains paquets acceptent peut-être --prefix qui est bien sûr une solution plus propre.