DESTDIR и префикс make
Я пытаюсь сделать установку программного обеспечения в определенный каталог. Я нашел несколько способов, но не уверен, в чем разница между ними.
./configure --prefix=***make install --prefix=***make install DESTDIR=***make install prefix=***
Я запутался в функциях этих четырех. Достигают ли они той же цели?
2 ответов:
номер 1 определяет, куда будет отправлен пакет, когда он будет установлен, и где он будет искать связанные с ним файлы при запуске. Это то, что вы должны использовать, если вы просто компилируете что-то для использования на одном хосте.
номер 2 - это просто ошибка, насколько я знаю.
число 3 предназначен для установки во временный каталог, из которого не будет выполняться пакет. Например это используется при построении
debпакеты. Человек, создающий пакет, на самом деле не устанавливает все на свое конечное место в своей собственной системе. У него может быть уже установлена другая версия и он не хочет ее нарушать, или он даже не может быть root. Поэтому он использует./configure --prefix=/usrтаким образом, программа будет ожидать установки в
/usrкогда он работает, тоmake install DESTDIR=debian/tmpфактически создать структуру каталогов.
количество 4 собирается установить его в другое место, но не создавать все каталоги как
DESTDIR=/foo/bar/bazбудет. Он обычно используется с GNU stow via./configure --prefix=/usr/local && make && sudo make install prefix=/usr/local/stow/foo, который будет устанавливать двоичные файлы в
/usr/local/stow/foo/bin. Для сравнения,make install DESTDIR=/usr/local/stow/fooустановить двоичные файлы в
/usr/local/stow/foo/usr/local/bin. Вот, наверное, что номер 2 так и должно было быть.
Это может помочь проиллюстрировать использование
DESTDIRи--prefix(от здесь):несколько установок с использованием --prefix и DESTDIR:
Sepcify другое -- префикс расположение / параметр для каждой сборки-во время настройки. Например:
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
Comments