Я хочу запустить 'make install', чтобы у меня было все необходимое, но я бы хотел, чтобы он устанавливал вещи в их собственную папку, а не в системный каталог / usr / bin и т. Д. Возможно ли это? даже если он ссылается на инструменты в / usr / bin и т. д.?
148
Ответы:
Это зависит от пакета. Если Makefile генерируется GNU autotools (
./configure
), вы обычно можете установить целевое местоположение следующим образом:Если Makefile не создается автоматическими инструментами, а распространяется вместе с программным обеспечением, просто откройте его в редакторе и измените его. Целевой каталог установки, вероятно, где-то определен в переменной.
источник
make && make install
следовать пункту конфигурации?--prefix
которой я столкнулся, заключается в том, что если выstrings
потом запустите получившийся двоичный файл, вы увидите, что путь хранится внутри. Я не знаю, почему это происходит, но я, конечно, не хочу, чтобы мои машинные пути были в двоичных файлах, которые я отправляю другим пользователям.Поскольку не знаю, какую версию automake вы можете использовать переменную окружения DESTDIR .
Смотрите Makefile, чтобы быть уверенным.
Например:
источник
Эта быстрая команда сработала для меня при установке opencv версии 3.2.0 на Ubuntu 16. Путь DESTDIR может быть как относительным, так и абсолютным.
Такое перенаправление также может быть полезно в случае, если у пользователя нет прав администратора, если местоположение DESTDIR имеет права доступа для пользователя. напр. / home //
источник
Это может зависеть от того, что поддерживается модулем, который вы пытаетесь скомпилировать. Если ваш make-файл создан с помощью автоинструментов, используйте:
--prefix=<myinstalldir>
при запуске ./configure
некоторые пакеты позволяют также переопределять при запуске:
однако, если вы не используете ./configure, единственный способ узнать наверняка - открыть make-файл и проверить. Это должна быть одна из первых переменных наверху.
источник
make prefix=...
может привести к двоичным файлам с неверно жестко закодированными путями, поскольку они, как правило, не могут быть изменены после./configure --prefix=...
Если пакет предоставляет
Makefile.PL
- можно использовать:* дальнейшее объяснение: https://www.perlmonks.org/?node_id=564720
источник
Я попробовал вышеуказанные решения. Никто не работал.
В конце я открыл файл Makefile и вручную изменил путь префикса к желаемому пути установки, как показано ниже.
Когда я попробовал --prefix, «make» пожаловался, что такого ввода команд нет. Однако, возможно, некоторые пакеты принимают --prefix, что, конечно, является более чистым решением.
источник
--prefix
вариантом является ,./configure
что вы называете ДОmake
.попробуйте использовать INSTALL_ROOT.
источник