Из пакетов с исходным кодом
Очень часто бывает необходимо самостоятельно собрать программу из ар- хива с исходным кодом, например, потому, что пакеты с этим ПО еще не собраны.
В подавляющем большинстве случаев, хотя и не всегда, для сборки и уста- новки программы из архива с исходным кодом достаточно выполнить сле- дующие действия:
1. Получить файл архива.
2. Разархивировать его.
3. Прочесть файл README или INSTALL.
4. Сконфигурировать сценарий сборки.
5. Собрать программу.
6. Установить программу.
В качестве иллюстрации к процессу сборки из архива с исходным ко- дом здесь приводится пример сборки DNS-сервера BIND (Berkeley Internet Names Daemon) последней на момент написания данной главы версии — BIND 9.7.0rc1.
Первый шаг заключается в получении архива с исходным кодом (при-
мер 18.1).
Пример 18.1. Получение архива с исходным кодом |
$ wget http://ftp.isc.org/isc/bind9/9.7.0rc1/bind-9.7.0rc1.tar.gz
Программа wget — один из наиболее удобных инструментов для получения файлов с анонимных FTP-серверов.
Далее требуется извлечь из архива его содержимое (пример 18.2).
Пример 18.2. Распаковка архива |
$ tar xzvf bind-9.7.0rc1.tar.gz
В результате этого должен быть создан каталог с именем пакета. В данном случае — bind-9.7.0rc1. Необходимо перейти в этот каталог. Очень важно изучить содержимое файла README и INSTALL, если они существуют (в этом примере есть README).
Следующий этап заключается в конфигурировании сценария сборки пакета. В GNU/Linux сборка программы производится с помощью программы make. Она выполняет действия, заданные в файле Makefile, называемые "целями" (target). Первая цель в Makefile выполняется по умолчанию, т. е. без задания утилите make аргумента.
Обратите внимание, что пока еще в текущем каталоге нет файла Makefile, а есть заготовка для его создания — Makefile.in. Дело в том, что, во-первых, на различных платформах сборка должна осуществляться по-разному, а во-вторых, можно собрать программу разными опциями, заданными про- граммистом.
Процесс создания Makefile для данной системы в соответствии с требова- ниями, предъявляемыми к программе, называется конфигурированием. Он выполняется с помощью сценария configure. Стандартная опция этого сценария — --help. С ее помощью можно получить подсказку о возможно- стях конфигурирования (пример 18.3).
Пример 18.3. Список опции сборки |
$ ./configure --help | less
Точка и косая черта перед именем исполняемого файла сценария требуются, т. к. каталог, в котором находится этот сценарий, не указан в перемен- ной PATH.
Одна из наиболее важных опций конфигурирования — --prefix. С ее помо- щью можно устанавливать путь к базовому каталогу для инсталляции про- граммы и ее компонентов. По умолчанию этот путь — /usr/local, и установка файлов будет произведена в подкаталоги этого каталога.
Для BIND опция --disable-largefiles отключает поддержку 64-битной ад- ресации блоков файлов, а --disable-ipv6 отключает поддержку IPv6 (при- мер 18.4).
Пример 18.4. Установка опций сборки |
./configure --disable-largefiles –-disable-ipv6
В результате работы сценария конфигурации будет создан файл Makefile на основе шаблона Makefile.in.
Процесс сборки запускается с помощью команды make (пример 18.5).
Пример 18.5. Сборка программы |
$ make
После сборки необходимо установить собранное программное обеспечение. Если установка осуществляется в каталог /usr/local, то перед инсталляцией
требуется перейти в сеанс суперпользователя. Рекомендуется пользоваться командой su без выхода из текущего каталога (как это произойдет в случае su -). Установка осуществляется на основе команд в Makefile, соответст- вующих цели install (пример 18.6).
Пример 18.6. Установка программы |
$ su
# make install
Можно запустить одну из установленных программ для того, чтобы убедить- ся в ее работоспособности. Узнаем версию установленного демона BIND (пример 18.7).
Пример 18.7. Проверка работоспособности установленной программы |
# /usr/local/sbin/named -v BIND 9.7.0rc1
Программа демона BIND при запуске ее с опцией -v выдала версию демона.
Дата добавления: 2015-06-12; просмотров: 780;