make install
fait tout ce que le Makefile
l'auteur veut qu'il le fasse. En général, à ce stade, il est trop tard pour modifier le répertoire d'installation, car il est souvent connu sous le nom de "répertoire d'installation". plus tôt pendant la construction, afin que les fichiers d'aide et les fichiers de configuration puissent être référencés avec les noms de chemin corrects.
De nombreux projets utilisent le Autotools de GNU pour essayer d'améliorer leur portabilité parmi les différences de matériel et de système d'exploitation. (Différentes variantes d'Unix utilisent des en-têtes légèrement différents pour les déclarations de fonctions qui sortent légèrement du chemin habituel -- sauf que la plupart des programmes ont besoin de l'une ou l'autre de celles déclarées à différents endroits).
Lorsqu'un projet utilise les Autotools, le mantra normal pour l'installer est le suivant :
./configure
make
make install
El ./configure
vous permet généralement d'utiliser une option de ligne de commande telle que --prefix /opt/apache
ou quelque chose de similaire pour spécifier un nom de chemin différent. /usr/local/
est un défaut courant prefix
. Il est beaucoup plus facile pour un logiciel construit localement de vivre à un endroit et pour un logiciel fourni par la distribution de vivre dans les "répertoires principaux" : /usr/
/bin/
et ainsi de suite. (Les emballeurs sont très attention à nunca toucher les fichiers dans /usr/local/
-- ils savent qu'il est exclusivement destiné aux administrateurs système).
Quoi qu'il en soit, le ./configure --prefix /path/to/new/prefix
va définir une variable dans le Makefile
qui est disponible lors de la compilation du programme, en modifiant les pages du manuel pour qu'elles indiquent les emplacements corrects des fichiers, en modifiant les fichiers de configuration, etc. Ainsi, make
construira le logiciel spécifiquement pour l'emplacement d'installation que vous souhaitez et make install
l'installera à cet endroit.
La plupart des programmes peuvent être exécutés même sans la version finale make install
étape -- juste ./program_name
va souvent les mettre en route. C'est définitivement une chose par projet -- certains, comme postfix
, qmail
etc., sont constitués de nombreuses pièces mobiles différentes qui doivent fonctionner ensemble. D'autres, comme ls
ou su
peuvent être suffisamment autonomes pour être exécutées depuis le répertoire dans lequel elles ont été construites. (Ce n'est pas souvent utile -- mais parfois très utile.)
Cependant, tous les projets n'utilisent pas les Autotools -- ils sont énorme , compliqué et misérable à entretenir. Écrit à la main Makefile
sont beaucoup plus simples à écrire, et je pense personnellement que distribuer un simple Makefile
avec des variables de configuration disponibles est beaucoup plus facile pour les développeurs et les utilisateurs. (Bien que le ./configure ; make ; make install
Le mantra est vraiment facile pour les utilisateurs lorsque cela fonctionne).