./configure --prefix=***
Nummer 1 legt fest, wohin das Paket bei der Installation verschoben wird und wo es nach den zugehörigen Dateien sucht, wenn es ausgeführt wird. Es ist das, was Sie verwenden sollten, wenn Sie nur etwas für die Verwendung auf einem einzelnen Host kompilieren.
make install DESTDIR=***
Nummer 2 dient der Installation in einem temporären Verzeichnis, von dem aus das Paket nicht ausgeführt wird. Dies wird beispielsweise beim Erstellen von deb
verwendet Pakete. Die Person, die das Paket erstellt, installiert nicht alles an seinem endgültigen Platz auf seinem eigenen System. Möglicherweise hat er bereits eine andere Version installiert und möchte diese nicht stören, oder er ist möglicherweise nicht einmal root. Also verwendet er
./configure --prefix=/usr
das Programm erwartet also, dass es in /usr
installiert wird wenn es läuft, dann
make install DESTDIR=debian/tmp
um die Verzeichnisstruktur tatsächlich zu erstellen.
make install prefix=***
Nummer 3 wird es an einem anderen Ort installieren, aber nicht alle Verzeichnisse als DESTDIR=/foo/bar/baz
erstellen möchten. Es wird häufig mit GNU stow via
./configure --prefix=/usr/local && make && sudo make install prefix=/usr/local/stow/foo
, wodurch Binärdateien in /usr/local/stow/foo/bin
installiert würden . Zum Vergleich:
make install DESTDIR=/usr/local/stow/foo
würde Binärdateien in /usr/local/stow/foo/usr/local/bin
installieren .
Dies kann helfen, die Verwendung von DESTDIR
zu veranschaulichen und --prefix
(von hier):
Mehrere Installationen mit --prefix und DESTDIR:
Geben Sie für jeden Build eine andere --prefix Position/Option an - zur Konfigurationszeit. Zum Beispiel:
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