Сделать установку, но не каталоги по умолчанию?

Я хочу запустить make make, поэтому у меня есть все, что мне нужно, но я бы хотел, чтобы он устанавливал вещи в их собственной папке, в отличие от системы /usr/bin и т.д., возможно ли это? даже если он ссылается на инструменты в /usr/bin и т.д.?

Ответ 1

Это зависит от пакета. Если Makefile создается GNU autotools (./configure), вы обычно можете установить целевое местоположение следующим образом:

./configure --prefix=/somewhere/else/than/usr/local

Если Makefile не генерируется autotools, а распространяется вместе с программным обеспечением, просто откройте его в редакторе и измените его. Целевой каталог установки, вероятно, определен где-то в переменной.

Ответ 2

Так как не знаю, в какой версии automake вы можете использовать переменную окружения DESTDIR.
См. Makefile, чтобы быть уверенным.

Например:

 export DESTDIR="$HOME/Software/LocalInstall" && make -j4 install

Ответ 3

Это может зависеть от того, что поддерживается модулем, который вы пытаетесь скомпилировать. Если ваш make файл генерируется с помощью autotools, используйте:

--prefix=<myinstalldir>

при запуске. /configure

некоторые пакеты позволяют вам также переопределять при запуске:

make prefix=<myinstalldir>

однако, если вы не используете. /configure, единственный способ узнать наверняка - открыть make файл и проверить. Он должен быть одним из первых нескольких переменных в верхней части.

Ответ 4

make DESTDIR=./new/customized/path install

Эта быстрая команда работала для меня для установки opecv версии 3.2.0 на Ubuntu 16. Путь DESTDIR может быть как относительным, так и абсолютным.

Такое перенаправление также может быть полезно в случае, если у пользователя нет прав администратора, если у места DESTDIR есть правильный доступ для пользователя. e.g/home//

Ответ 5

попробуйте использовать INSTALL_ROOT.

make install INSTALL_ROOT=$INSTALL_DIRECTORY