Обратите внимание, что извлекать из архива и компилировать исходный код Asterisk мы будем в папке /usr/src/, хотя некоторые системные администраторы, возможно, предпочитают использовать /usr/ local/src. Также помните, что для записи файлов в папку /usr/src/ и установки Asterisk и сопутствующих ей пакетов, необходимо иметь права администратора.
В главе 13 можно найти информацию о том, как запустить Asterisk, не будучи администратором. Все специалисты по безопасности рекомендуют запускать свои программы-демоны под учетной записью, не дающей права администратора, на случай возможного проникновения в систему вредоносного кода. Это снизит (но, конечно же, не устранит) риск похищения пароля для пользователя с правами администратора.
Чтобы получить самую последнюю выпущенную версию исходного кода с помощью wget, в командной строке необходимо ввести следующие команды:
# cd /usr/src/
# wget http://downloads.digium.com/pub/asterisk/asterisk-1.4-current.tar.gz
# wget http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz
# wget http://downloads.digium.com/pub/zaptel/zaptel-1.4-current.tar.gz
Последние версии пакетов asterisk, libpri и zaptel вполне могут идти под разными номерами.
И наоборот, при разработке и тестировании, вероятно, вы захотите иметь код самой новой ветви. Чтобы извлечь этот код из SVN, выполните следующую команду:
# svn coasterisk-1.4 Если исходный код получен в виде файлов выпущенной версии, размещенных на FTP-сервере Digium, перед компиляцией эти файлы необходимо извлечь из архива, о чем рассказывается в следующем разделе.
Извлечение исходного кода из архива
Пакеты, загружаемые с FTP-сервера, являются архивами, в которых содержится исходный код; таким образом, перед компиляцией код требуется извлечь из архива. Если пакеты загружены в другую папку, не /usr/src/, их надо или перенести туда или указать полный путь к ним. Для извлечения исходного кода из архива мы будем использовать GNU-приложение tar. Это простой процесс, который выполняется с помощью следующих команд:
# cd /usr/src/
# tar zxvf zaptel-1.4-current.tar.gz
# tar zxvf libpri-1.4-current.tar.gz
# tar zxvf asterisk-1.4-current.tar.gz
В bash (и других командных оболочках, поддерживающих ее) можно использовать исключительно удобную функцию автозаполнения по нажатию клавиши Tab. Это позволяет вводить лишь часть имени файла, а все остальное система дополняет автоматически. Например, если введено tar zxvf
Выполнение этих команд обеспечит извлечение пакетов и исходного кода из архивов в соответствующие папки. Например, файл asterisk- 1.4-current.tar.gz будет извлечен в папку текущей версии Asterisk, то есть asterisk-1.4.4.
Желательно всегда сохранять исходный код последней рабочей версии пакета на случай необходимости выполнить «откат» при обнаружении очередного дефекта или странностей в поведении, которые не получается сразу разрешить.
Окно выбора компонентов сборки
В Asterisk версии 1.4.0 и связанных с ней пакетах была реализована новая система сборки autoconf. Это немного изменило процесс сборки, но предоставило больше гибкости, позволив выбирать модули, подлежащие сборке. Преимущество состоит в том, что в сборке участвуют только необходимые модули, а не весь исходный код. Вместе с системой сборки была введена новая система выбора на основе меню. Спасибо Расселу Брайанту (Russell Bryant). Эта новая система обеспечивает возможность более детального отбора подлежащих сборке модулей перед компиляцией ПО и избавляет пользователя от необходимости редактировать файлы Makefiles. Поэтому, чтобы не рассказывать, как использовать окно выбора компонентов сборки в каждом разделе «Компиляция.», обсудим это здесь, чтобы, увидев опцию make menuselect, вы знали, что должны делать с окном выбора компонентов сборки.
На рис. 3.1 представлено окно выбора компонентов сборки для программного обеспечения Asterisk. Для других пакетов оно будет прак-
*************************************
Asterisk Module Selection *************************************
Press 'h' for help.
-> l. Applications
# Call Detail Recording
# Channel Drivers
# Codec Translators
# Format Interpreters
# Dlalplan Functions
# PBX Modules
# Resource Modules
# Voicemail Build Options 1Э. Compiler Flags
# Module Embedding
# Core Sound Packages
# Music On Hold File Packages
# Extras Sound Packages
тически таким же, но с меньшим количеством опций. Перемещение вверх и вниз по списку осуществляется с помощью клавиш со стрелками. Выбор опции меню выполняется по нажатию клавиши Enter или клавиши со стрелкой вправо. Для отмены выбора используется клавиша со стрелкой влево.