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.
./configure --prefix=***
make install --prefix=***
make install DESTDIR=***
make install prefix=***
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ć.
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
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