Настройка вашей сборки
Если у вас есть исходный код, скомпилированный с помощью команды ./configure
and 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=directorydirectorydirectorydirectory
Исполняемые файлы обычно входят 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, вас может заинтересовать стандарт иерархии файловых систем .