By Andriy Ivashchenko
Posted on ai.kh.ua: Mar 25, 2011
http://ai.kh.ua/articles/002.html
Updated: Jun 16, 2013
Upd: Dec 10, 2012. Реклама: Выходит новая статья, пока в черновом варианте, Установка Asterisk 11 и Asterisk 10 на Debian squeeze в контейнер wheezy
Disclaimer.
1. Методика установки пакетов в Debian.
2. О команде разработчиков Debian VoIP team.
3. Генерация "base system from scratch"
4. Получение исходных кодов, компиляция и сборка пакетов.
Автор ни при каких обстоятельствах не несет ответственности за ущерб, явившийся результатом прямого или косвенного использования данной статьи. Информация предоставляется исключительно в ознакомительных целях.
На данный момент Debian/GNU Linux предоставляет огромный выбор пакетов как для создания IP АТС, так и для мультимедийных клиентских платформ. В Репозитории вы можете найти все необходимое для работы с протоколами передачи голосовой и видеоинформации.
Пакет программ в Debian представляет собой один или несколько deb-файлов. Высокоуровневая система управления пакетами называется Advanced Packaging Tool (APT) и представляет собой оболочку для низкоуровневой системы dpkg. APT оказался настолько производительным, удобным и открытым средством, что его взяли на вооружение другие дистрибутивы.
Debian 6 , кодовое имя "squeeze", представляет стабильную ветку на момент написания статьи. При помощи APT вы сможете легко установить пакет программ Asterisk версии 1.6. Но жизнь не стоит на месте. Для тех, кто активно интересуется версией 1.8, существует несколько путей получить набор deb-файлов и установить их в системе.
A - Подключить Репозиторий Digium, воспользовавшись их инструкцией.
B - Самому собрать deb-файлы.
Собственно цель статьи -- освоить сборку пакета программ из SVN репозитория. Существуют и другие методики установки Asterisk версии 1.8, но мы остановимся на той, которая позволит получить deb-файлы. SVN используется в связи с тем, что исходные коды Asterisk 1.8 находятся в активной стадии отладки и мы можем их получить "прямо из печки".
Все пакеты программ, которые связаны с протоколами VoIP, собираются командой Debian VoIP team. Если вас интересует список людей, кто участвует в разработке, то это можно узнать на странице Проекта Alioth. Здесь же вы можете подать заявку на участие в проекте, если считаете, что обладаете достаточной квалификацией в процессах сборки и отладки пакетов программ для Debian.
Посмотреть дерево проекта можно через Web-интерфейс SVN VoIP team. (UPD 20110808: или http://anonscm.debian.org/viewvc/pkg-voip/)
Участники Debian VoIP team настоящие профессионалы в области разработки средств VoIP. При этом, как правило, они являются сотрудниками тех компаний, которые ведут разработку ключевых приложений. Например Paul Belanger является сотрудником Digium, которая собственно и разработала Asterisk. А вот Tzafrir Cohen является представителем компании Xorcom, которая известна не только программными, но и аппаратными решениями для IP АТС.
Не столь давно появившаяся система Ubuntu базируется на проекте Debian. Ubuntu VoIP разработчики многое берут из Debian, так как компания Canonical, управляющая Ubuntu, не смогла бы справиться с огромным количеством портируемых пакетов. Но при этом Ubuntu приносит ощутимую пользу Debian, потому что сообщество Ubuntu помогает в отладке благодаря всё возрастающему количеству участников обоих проектов. На данный момент в процессе активной разработки система обмена патчами между проектами. Таким образом обе системы помогают друг другу активно развиваться. Это пример того, как в сообществе открытого ПО, казалось бы, конкурирующие системы на самом деле являются партнерами.
Данная статья не рассматривает методик инсталляций Asterisk 1.8 в Ubuntu, хотя можно сказать, что они очень похожи, так как обе системы используют dpkg и APT.
Данная глава посвящена тому, как внутри готовой системы Debian сгенерировать "базовый комплект" дистрибутива squeeze. Это не обязательно, если у вас уже squeeze и вы готовы добавлять пакеты в основную систему для процессов сборки. Но если вы хотите чтоб ваша система осталась не тронутой, то приступим к получению среды в которой "сварим" новый Asterisk.
- Загружаем программу установки, которая называется debootstrap
# apt-get install debootstrap
- создаем каталог где будем создавать базовую систему (у нас это /var/opt/chroots)
# mkdir /var/opt/chroots
# cd /var/opt/chroots
# debootstrap squeeze ./squeeze-chroot http://ftp.us.debian.org/debian
- После того, как система установилась, примонтируем каталог proc, чтобы безболезненно можно было переключиться в неё при помощи chroot.
# mount -t proc proc squeeze-chroot/proc
# chroot squeeze-chroot
- Теперь в файл /etc/apt/sources.list добавляем следующие строки, чтобы активировать репозитории squeeze для системы
deb-src http://ftp.de.debian.org/debian/ squeeze main non-free contrib
deb http://ftp.de.debian.org/debian/ squeeze main non-free contrib
deb-src http://security.debian.org/ squeeze/updates main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
- Вгрузим информацию о пакетах
# apt-get update
# apt-get clean
- Таким образом мы приготовили базовую систему. Вы можете заархивировать ее, чтоб не
выполнять такую процедуру еще раз:
# exit
# umount squeeze-chroot/proc
# tar zcvf squeeze-chroot-`date "+%Y%m%d"`.tar.gz squeeze-chroot/
- И вернуться назад в chroot
# mount -t proc proc squeeze-chroot/proc
# chroot squeeze-chroot
Complete layout information: origDir=/usr/src/tarballs trunkDir=/usr/src/asterisk trunkUrl=svn://anonscm.alioth.debian.org/svn/pkg-voip/asterisk/trunk dpkg-checkbuilddeps dpkg-checkbuilddeps: Unmet build dependencies: libreadline-dev | libreadline5-dev libgsm1-dev libssl-dev libtonezone-dev (>= 1:2.0.0) libasound2-dev libpq-dev unixodbc-dev libmysqlclient-dev | libmysqlclient15-dev libbluetooth-dev libpri-dev (>= 1.4.11) libss7-dev libvpb-dev dahdi-source libnewt-dev libsqlite0-dev | libsqlite-dev libspeex-dev libspeexdsp-dev libcurl4-openssl-dev | libcurl-dev libxml2-dev libpopt-dev libopenh323-dev (>= 1.17.4) libiksemel-dev libradiusclient-ng-dev freetds-dev libvorbis-dev libsnmp-dev libc-client2007e-dev | libc-client2007b-dev libgmime-2.4-dev | libgmime2-dev libjack-dev liblua5.1-0-dev libcap-dev (>= 1:2.16-4) | libcap2-dev libspandsp-dev libopenr2-dev libresample1-dev libopenais-dev libneon27-gnutls-dev | libneon27-dev libical-dev libsrtp0-dev zlib1g-dev Insufficient Build-Deps, stop!
А что дальше?...Дальше вы должны тщательно изучить как пользоваться ключом --install у пакета dpkg.
© 20082022 Андрей Иващенко
powered by static files tm