русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Из пакетов с исходным кодом


Дата добавления: 2015-07-09; просмотров: 596; Нарушение авторских прав


Очень часто бывает необходимо самостоятельно собрать программу из ар- хива с исходным кодом, например, потому, что пакеты с этим ПО еще не собраны.


 

В подавляющем большинстве случаев, хотя и не всегда, для сборки и уста- новки программы из архива с исходным кодом достаточно выполнить сле- дующие действия:

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 выдала версию демона.

 



<== предыдущая лекция | следующая лекция ==>
В чем состоит управление программным обеспечением? | Управление библиотеками


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.127 сек.