DESTDIR i prefiks marki

Próbuję zainstalować oprogramowanie w określonym katalogu. Znalazłem kilka sposobów, ale nie wiem, jakie są różnice między nimi.

  1. ./configure --prefix=***
  2. make install --prefix=***
  3. make install DESTDIR=***
  4. make install prefix=***
Jestem zdezorientowany co do funkcji tych czterech. Czy osiągają ten sam cel?
Author: Mateen Ulhaq, 2012-07-03

2 answers

Numer 1 określa, gdzie pakiet trafi po zainstalowaniu i gdzie będzie szukał powiązanych plików po uruchomieniu. To jest to, czego powinieneś użyć, jeśli właśnie kompilujesz coś do użytku na jednym hoście.


Numer 2 {[11] } jest po prostu błędem, o ile wiem.


Numer 3 jest przeznaczony do instalacji w katalogu tymczasowym, z którego nie będzie uruchamiany pakiet. Na przykład jest to używane podczas budowania deb paczki. Osoba budująca pakiet nie instaluje wszystkiego w swoim systemie. Może mieć już zainstalowaną inną wersję i nie chce jej przeszkadzać, lub może nawet nie być rootem. Więc używa

./configure --prefix=/usr

Więc program będzie się spodziewał zainstalowania w /usr Po uruchomieniu, to

make install DESTDIR=debian/tmp

Aby utworzyć strukturę katalogów.


Numer 4 zainstaluje go w innym miejscu, ale nie stworzy wszystkich katalogi jak DESTDIR=/foo/bar/baz. Jest powszechnie używany z GNU stow poprzez

./configure --prefix=/usr/local && make && sudo make install prefix=/usr/local/stow/foo

, który instalowałby binaria w /usr/local/stow/foo/bin. Dla porównania,

make install DESTDIR=/usr/local/stow/foo

Instaluje binaria w /usr/local/stow/foo/usr/local/bin. To prawdopodobnie to, co Numer 2 naprawdę miało być.

 138
Author: Alan Curry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-26 03:15:35

To może pomóc zilustrować użycie DESTDIR i --prefix (z tutaj):

Wiele instalacji przy użyciu --prefix i DESTDIR:

Sepcyfikuj inną lokalizację/opcję --prefix dla każdej konfiguracji podczas budowania. Dla NP:

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
 0
Author: sancho.s,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-27 14:31:14