Lorsque vous installez un logiciel avec make install
o sudo make install
Les fichiers sont placés dans des répertoires différents. Les exécutables qui fournissent des commandes que l'utilisateur est censé exécuter sont généralement placés dans un répertoire bin
les bibliothèques sont généralement placées dans un répertoire lib
Les pages manuelles sont généralement placées dans un répertoire man
et ainsi de suite.
Lorsque vous exécutez ./configure
, les --prefix
L'option vous permet de spécifier l'endroit où Ceux-ci Les répertoires sont . Il est appelé --prefix
parce qu'il vous permet de donner à l préfixe qui apparaît dans les chemins d'accès à chacun des répertoires dans lesquels les fichiers du programme ou de la bibliothèque que vous construisez doivent être installés. La plupart des configure
scripts support --prefix
et en l'omettant et en exécutant simplement ./configure
est généralement équivalent à ./configure --prefix=/usr/local
.
Pour répondre plus complètement à cette question, j'ai reproduit deux sections du document suivant ma réponse まで Comment installer le fichier tar "globalement" ? (sur Unix et Linux ), qui traitent spécifiquement de cette question :
Configuration de la construction
Lorsque vous avez un code source qui est compilé en exécutant la commande ./configure
et make
vous utiliserez généralement make install
(ou sudo make install
) pour l'installer. Cette opération permet de copier les fichiers du répertoire de construction dans le répertoire d'installation. Lorsque l'élément que vous installez fournit des commandes des commandes exécutables, ces exécutables sont généralement copiés dans un répertoire qui se trouve dans le répertoire $PATH
ou que vous devriez envisager d'ajouter des $PATH
.
Bien que la création et l'installation de logiciels soient souvent d'exécuter ./configure
, make
, parfois make check
o make test
, et ensuite make install
o sudo make install
Vous aurez parfois à faire face à des vous voudrez parfois passer des options à la fonction configure
script pour configurer la construction. En particulier, comme pfnuesel dit C'est ainsi que l'on peut où le logiciel va être installé. Même si le make install
l'étape de l'installation du logiciel, les emplacements où tout sera installé sont généralement établis dans la base de données. [ ] ./configure
pas.
L'option la plus courante est la suivante --prefix
. Le préfixe par défaut, lorsque vous ne dites pas configure
de ce qu'il convient d'utiliser, est généralement /usr/local
. (Il arrive que le code source d'un programme ou d'une bibliothèque prenne par défaut une autre valeur préétablie). autre préfixe. Heureusement, c'est rare).
Donc ./configure
est généralement équivalent à ./configure --prefix=/usr/local
. Pour installer un logiciel dans votre répertoire personnel, vous pouvez utiliser la méthode suivante ./configure --prefix=/home/galahad
(si /home/galahad
i votre répertoire personnel) ou --prefix="$HOME"
. Ensuite, il faut bien sûr construire et installer le logiciel avec make
. Je dois préciser que tous les logiciels distribués sous forme de code source ne sont pas construits de cette manière. de cette façon. Vous devez toujours chercher la documentation à l'intérieur du extraite du code source.
Ce qu'il faut faire --prefix
Moyens
Lorsque vous exécutez ./configure --prefix=_directory_
, que le logiciel doit être installé directory
répertoire. Mais cela ne permet que rarement, voire jamais, de placer des fichiers en vrac dans le répertoire directory
. Au lieu de cela, il place les fichiers qui servent dans les différents sous-répertoires de directory
. Si ces n'existent pas, il les crée.
Les exécutables sont généralement placés dans _directory_/bin
bien qu'ils peuvent entrer _directory_/sbin
s'ils sont couramment utilisés pour l'administration du système, ou ils peuvent aller (plus rarement, de nos jours) à l'étranger. _directory_/games
s'il s'agit de jeux. L _directory_/lib
ou un autre nom similaire _directory_/lib32
. Fichiers d'en-tête g _directory_/include
. Pages du manuel _directory_/man
. Fichiers de données utilisés par le logiciel g _directory_/share
.
C'est ce que cela signifie pour directory
d'être un préfixe . C'est la répertoire parent qui contient les emplacements dans lesquels les différents fichiers seront insérés. seront installés. Il apparaît donc comme un préfixe im a chemins de la plupart des fichiers et répertoires créés en exécutant make install
o sudo make install
.
Il existe quelques exceptions à cette règle. Les fichiers de configuration à l'échelle du système qui sont parfois créés lors de l'installation des logiciels qui logiciels qui les utiliseront, mais pas toujours, vont généralement dans des fichiers de configuration. /etc
. Il ne s'agit pas d'une n'est pas affecté par la spécification d'un préfixe différent. Même si vous installez beaucoup de logiciels dans /usr/local
, il sera toujours mo /etc
et votre /usr/local/etc
Le répertoire sera probablement inexistant, vide ou contenant très peu de fichiers.
Sur de nombreux systèmes, vous pouvez trouver plus d'informations en exécutant la commande man hier
. Si vous utilisez un système GNU/Linux vous serez peut-être intéressé par le programme Hiérarchie des systèmes de fichiers Standard .