J'essaie de faire installer le logiciel dans un répertoire spécifique. J'ai trouvé plusieurs façons, mais je ne sais pas quelles sont les différences entre elles.
./configure --prefix=***
make install DESTDIR=***
make install prefix=***
Je suis confus sur les fonctions de ces trois. Est-ce qu'ils atteignent le même objectif?
./configure --prefix=***
Number 1 détermine où le paquet ira quand il sera installé et où il cherchera les fichiers associés quand il sera lancé. C'est ce que vous devriez utiliser si vous compilez quelque chose pour l'utiliser sur un seul hôte.
make install DESTDIR=***
Number 2 est destiné à être installé dans un répertoire temporaire dans lequel le package ne sera pas exécuté. Par exemple, ceci est utilisé lors de la construction de packages deb
. La personne qui construit le paquet n’installe pas tout à sa place sur son propre système. Il peut avoir une version différente déjà installée et ne pas vouloir la déranger, ou même ne pas être root. Alors il utilise
./configure --prefix=/usr
donc le programme s’attendra à être installé dans /usr
quand il fonctionne, puis
make install DESTDIR=debian/tmp
pour créer réellement la structure de répertoire.
make install prefix=***
Number va l'installer à un endroit différent mais ne pas créer tous les répertoires en tant que DESTDIR=/foo/bar/baz
aurait. Il est couramment utilisé avec GNU stow via
./configure --prefix=/usr/local && make && Sudo make install prefix=/usr/local/stow/foo
, qui installerait des binaires dans /usr/local/stow/foo/bin
. Par comparaison,
make install DESTDIR=/usr/local/stow/foo
installerait les binaires dans /usr/local/stow/foo/usr/local/bin
.
Cela peut aider à illustrer l'utilisation de DESTDIR
et --prefix
(de ici ):
Installations multiples à l'aide de - préfixe et DESTDIR:
Sépécifier un - emplacement/une option différente pour chaque construction - au moment de la configuration. Pour par exemple:
untar petsc tar ball ./configure --prefix=/opt/petsc/petsc-3.9.0-mpich --with-mpi-dir=/opt/mpich make make install DESTDIR=/tmp/petsc-pkg untar petsc tar ball ./configure --prefix=/opt/petsc/petsc-3.9.0-openmpi --with-mpi-dir=/opt/openmpi make make install DESTDIR=/tmp/petsc-pkg
De openssl/INSTALL
Les constructeurs de packages qui souhaitent configurer la bibliothèque pour des emplacements standard, mais qui ont installé le package ailleurs afin de pouvoir le conditionner facilement, peuvent utiliser
$ make INSTALL_PREFIX=/tmp/package-root install
(ou spécifiez "--install_prefix =/tmp/package-root" en tant qu'option de configuration). Le préfixe spécifié sera ajouté au début à tous les noms de fichiers cibles d'installation.
Ceci n'est pas standard mais INSTALL_PREFIX est utilisé dans d'autres programmes.
Cela fonctionne pour les versions OpenSSL antérieures à 1.1.x. OpenSSL 1.1.x et les versions ultérieures sont capables de reconnaître les DESTDIR
habituels.