Я хочу запустить 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