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