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 $PATHlequel 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, makeparfois make checkou make test, puis make installou sudo make install, vous voulez parfois passer des options au configurescript 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 configurequoi 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.)
./configureEst 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/galahadc'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 --prefixsignifie
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=directorydirectorydirectorydirectory
Les exécutables entrent généralement directory/bin, bien qu'ils puissent entrer directory/sbins'ils sont couramment utilisés pour l'administration du système ou s'ils peuvent (plus rarement, de nos jours)
directory/gamess'ils sont des jeux. Les bibliothèques entrent dans
directory/libou 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
/etcet votre /usr/local/etcré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 .