Configuration de votre build
Lorsque vous avez du code source qui est compilé en exécutant ./configure
et make
, vous utiliserez généralement make install
(ou sudo make install
) pour l'installer. Cela copie les fichiers du répertoire de construction dans l'emplacement d'installation. Lorsque la chose que vous installez fournit des commandes exécutables, ces exécutables sont généralement copiés dans un répertoire dans $PATH
lequel vous devriez envisager de les ajouter
$PATH
.
Bien que l' installation du logiciel et la construction est souvent aussi simple que l' exécution ./configure
, make
parfois make check
ou make test
, puis make install
ou sudo make install
, vous voulez parfois passer des options au configure
script pour configurer la compilation. En particulier, comme le dit pfnuesel , c'est ainsi que vous configurez
où le logiciel va être installé. Même si l' make install
étape installe réellement le logiciel, les emplacements où tout sera installé sont généralement définis dans l'
./configure
étape.
L'option la plus courante pour cela est --prefix
. Le préfixe par défaut, lorsque vous ne dites pas configure
quoi utiliser, est généralement /usr/local
. (Parfois, le code source d'un programme ou d'une bibliothèque prend par défaut un autre préfixe. Heureusement, c'est rare.)
./configure
Est donc généralement équivalent à ./configure --prefix=/usr/local
. Pour installer le logiciel dans votre répertoire personnel, vous pouvez utiliser ./configure --prefix=/home/galahad
(si /home/galahad
c'est votre répertoire personnel) ou --prefix="$HOME"
. Bien sûr, vous devez toujours construire et installer le logiciel avec make
. Je dois dire que tous les logiciels distribués sous forme de code source ne sont pas construits de cette façon. Vous devez toujours rechercher de la documentation dans l'archive de code source extraite.
Que --prefix
signifie
Lorsque vous exécutez , vous indiquez que le logiciel doit être installé dans le
répertoire. Mais cela place rarement, voire jamais, des fichiers en vrac . Au lieu de cela, il place des fichiers qui remplissent des fonctions différentes dans les différents sous-répertoires de . Si ces sous-répertoires n'existent pas, il les crée../configure --prefix=directory
directory
directory
directory
Les exécutables entrent généralement directory/bin
, bien qu'ils puissent entrer directory/sbin
s'ils sont couramment utilisés pour l'administration du système ou s'ils peuvent (plus rarement, de nos jours)
directory/games
s'ils sont des jeux. Les bibliothèques entrent dans
directory/lib
ou un autre répertoire du même nom comme
directory/lib32
. Les fichiers d'en-tête entrent
directory/include
. Les pages de manuel entrent
directory/man
. Les fichiers de données utilisés par le logiciel entrent
directory/share
.
C'est ce que signifie directory
être un préfixe . C'est le répertoire parent qui contient les emplacements dans lesquels différents fichiers seront installés. Il apparaît ainsi comme un préfixe dans les chemins absolus de la plupart des fichiers et répertoires créés en exécutant make install
ou sudo make install
.
Il y a quelques exceptions à cela. Les fichiers de configuration à l'échelle du système - qui sont parfois créés lors de l'installation du logiciel qui les utilisera, mais pas toujours - entrent généralement /etc
. Cela n'est généralement pas affecté par la spécification d'un préfixe différent. Même si vous installez un grand nombre de logiciels dans /usr/local
, il utilisera principalement
/etc
et votre /usr/local/etc
répertoire sera probablement inexistant, vide ou contiendra très peu de fichiers.
Sur de nombreux systèmes, vous pouvez trouver plus d'informations sur la disposition typique d'un système de fichiers en exécutant man hier
. Si vous utilisez un système GNU / Linux, vous pouvez être intéressé par la norme de hiérarchie du système de fichiers .