DESTDIR и префикс make



Я пытаюсь сделать установку программного обеспечения в определенный каталог. Я нашел несколько способов, но не уверен, в чем разница между ними.




  1. ./configure --prefix=***

  2. make install --prefix=***

  3. make install DESTDIR=***

  4. make install prefix=***


Я запутался в функциях этих четырех. Достигают ли они той же цели?

653   2  

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

    Ничего не найдено.