Что делает - префикс делает точно при использовании в./настраивать?

Таким образом, у меня просто был простой вопрос, это, вероятно, собирается заставить меня выглядеть немым, но я учусь

Когда я делаю a

./configure --prefix/usr/bin/

Что делает префикс? Это просто установка пакета в то местоположение

И может ответ давать больше тщательно продуманного ответа для сложной установки и объяснять подробно префиксы и опции, которые идут с ним.

Если бы я должен был работать, Кв. - получают установку, как я установил бы ее на определенном местоположении с префиксом

Я также видел

 PREFIX=/tmp/installdir make


 PREFIX=/tmp/installdir make install

Если префикс называют в./настраивать, почему он всегда сделал в этих двух примерах?

Заранее спасибо!

29
задан 10 March 2017 в 20:57

2 ответа

Когда Вы устанавливаете программное обеспечение с make install или sudo make install, различные файлы помещаются в различные каталоги. Исполняемые файлы, которые предоставляют командам пользователя, предназначаются для выполнения, обычно входят в a bin каталог, библиотеки обычно входят в a lib каталог, страницы руководства обычно входят в a man каталог, и т.д.

Когда Вы работаете ./configure, --prefix опция позволяет Вам указать, где те каталоги. Это называют --prefix потому что это позволяет Вам дать префикс, который появляется в путях к каждому из каталогов, где файлы из программы или библиотеки, которую Вы создаете, должны быть установлены. Большинство configure поддержка сценариев --prefix, и исключение его и просто выполнение ./configure обычно эквивалентно ./configure --prefix=/usr/local.

Для ответа на это более полно я воспроизвел два раздела от своего ответа до того, Как установить файл tar “глобально”? (на Unix & Linux), которые рассматривают этот вопрос конкретно:

Конфигурирование Вашей сборки

Когда у Вас есть исходный код, который компилируется путем выполнения ./configure и make, Вы будете обычно использовать make install (или sudo make install) устанавливать его. Это копирует файлы с каталога сборки в местоположение установки. Когда вещь, которую Вы устанавливаете, обеспечивает исполняемые команды, те исполняемые файлы обычно копируются в каталог, который находится в $PATH или это необходимо рассмотреть добавление к $PATH.

Хотя создание и установка программного обеспечения часто так же просты как выполнение ./configure, make, иногда make check или make test, и затем make install или sudo make install, Вы будете иногда хотеть передать опции configure сценарий для конфигурирования сборки. В частности, как pfnuesel говорит, это - то, как Вы настраиваете, где программное обеспечение будет установленным. Даже при том, что make install ступите на самом деле устанавливает программное обеспечение, местоположения, где все будет установлено, обычно устанавливаются в ./configure шаг.

Наиболее распространенная опция для этого --prefix. Префикс по умолчанию, когда Вы не говорите configure то, что использовать, обычно /usr/local. (Иногда, программа или значения по умолчанию исходного кода библиотеки к некоторому другому префиксу. К счастью, это редко.)

Так ./configure обычно эквивалентно ./configure --prefix=/usr/local. Для установки программного обеспечения в корневом каталоге Вы могли использовать ./configure --prefix=/home/galahad (если /home/galahad Ваш корневой каталог), или --prefix="$HOME". Затем, конечно, необходимо все еще создать и установить программное обеспечение с make. Я должен сказать, что не все программное обеспечение, которое распределяется в форме исходного кода, создается этот путь. Необходимо всегда искать документацию в извлеченном архиве исходного кода.

Что --prefix Средства

Когда Вы работаете ./configure --prefix=directory, Вы указываете, что программное обеспечение должно быть установлено под directory каталог. Но это редко, если когда-нибудь, помещает свободные файлы в directory. Вместо этого это помещает файлы, которые служат различным целям в различных подкаталогах directory. Если те подкаталоги не существуют, это создает их.

Исполняемые файлы обычно входят directory/bin, хотя они могут войти directory/sbin если они являются наиболее часто используемыми для системного администрирования, или они могут пойти (более редко, в эти дни) в directory/games если они - игры. Библиотеки входят directory/lib или другой столь же именованный каталог как directory/lib32. Заголовочные файлы входят directory/include. Страницы руководства входят directory/man. Файлы данных, используемые программным обеспечением, входят directory/share.

Это - то, для чего это означает directory быть префиксом. Это - родительский каталог, который содержит местоположения, в которых будут установлены различные файлы. Это таким образом появляется как префикс в полных путях большинства файлов и каталогов, созданных путем выполнения make install или sudo make install.

Существуют некоторые исключения к этому. Конфигурационные файлы в масштабе всей системы - которые иногда создаются при установке программного обеспечения, которое будет использовать их, хотя не всегда - обычно входят /etc. Это обычно не затрагивается путем определения другого префикса. Даже если Вы устанавливаете много программного обеспечения в /usr/local, это будет все еще главным образом использовать /etc, и Ваш /usr/local/etc каталог будет, вероятно, не существовать, будет пуст, или содержать очень немного файлов.

Во многих системах можно найти больше информации о типичном расположении файловой системы путем выполнения man hier. При использовании системы GNU/Linux, можно интересоваться Стандартом Иерархии Файловой системы.

32
ответ дан 23 November 2019 в 00:53

Это говорит местоположение вещей, которые требуются, чтобы настраивать текущий пакет или программное обеспечение.

Как в простом случае, это может сказать местоположение ssl библиотек:

--with-libssh2=/usr/local  #used in configuring nagios

и это также говорит который пакеты не настроить, сделать подходящие компиляции программы согласно Вашей системе:

--disable-shared  # used in configuring nagios
--disable-link-balancer  # used in configuring Firehol

Это просто дополнительные опции сделать компиляцию подходящей для Вашей системы. Это - то, что я думаю. Действительно исправьте меня, если это - что-то еще.

--prefix=PREFIX опция устанавливает архитектурно-независимые файлы в PREFIX. Когда Вы будете работать make install команда, библиотеки будут размещены в PREFIX/lib каталог, исполняемые файлы в PREFIX/bin каталог и так далее.

, Если этот аргумент не передается эти configure команда затем, значение по умолчанию /usr/local.

2
ответ дан 23 November 2019 в 00:53

Другие вопросы по тегам:

Похожие вопросы: