Сборка и установка Yate из SVN

Для установки последней версии Yate из SVN на любом сервере с установленной операционной системой Linux выполните следующие шаги:

Предварительные шаги:

Для получения полной сборки Yate вам понадобится:
  • Базовые системные инструменты:  sed grep awk;
  • Базовые инструменты разработчика:
  1. GNU make (осуществить сборку, используя BSD make не получится)
  2. Компилятор C++ из набора программ GNU ( gcc/g++) и его библиотеки
  3. Сборщик сценариев конфигурации  autoconf;
  • SVN-клиент;
  • Компоненты разработчика (dev-библиотеки) всех модулей Yate, которые вы хотите собрать;
  • pkg-config.
Скорее всего, в используемой вами операционной системе есть менеджер пакетов для установки необходимых компонентов, указанных выше. Если этого можно избежать, не собирайте программное обеспечение самостоятельно.
Обратите внимание: для обеспечения системы динамической загрузки модулей в Yate используются традиционные системные вызовы dlopen()/dlsym(). Они поддерживаются не всеми операционными системами, таким образом вы не можете использовать Yate на платформах, не предоставляющих вышеназванные системные вызовы.

Окружение

Выполняйте все описанные ниже команды в терминале (консоли, эмуляторе терминала используемого графического окружения или удалённой оболочке, предоставляемой  SSH).
Выполнение некоторых команд потребует прав суперпользователя (root).

Загрузка исходного кода

После установки SVN-клиента просто выполните команду:

 cd /usr/src
 svn checkout  http://voip.null.ro/svn/yate/trunk yate-SVN
 cd yate-SVN

Первая команда сменит рабочую директорию, вторая скачает из SVN на ваш компьютер дерево каталогов (в которую вносятся изменения в код проекта) в новую папку yate-SVN. Третья сменит рабочую директорию на папку с исходным кодом Yate.

Подготовка и конфигурация исходного кода.

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

./autogen.sh
Finished! Now run configure. If in doubt run ./configure --help

Если autoconf отсутствует, вы увидите предупреждение, после чего, если всё в порядке, сценарий подготовит конфигурационный скрипт. Теперь запустите конфигурационный скрипт.

 ./configure
 checking for local operating system type... Linux
 checking for libraries directory name... lib
 checking for g++... g++
 ...
 configure: creating ./config.status
 config.status: creating packing/rpm/yate.spec
 ...
 config.status: creating yate-config
 config.status: creating run

Примечание: внимательно просмотрите вывод работы конфигурационного скрипта и проверьте, все ли необходимые функции определились. В противном случае, проверьте, присутствуют ли в системе все необходимые компоненты разработчика.

После того, как все необходимые компоненты определились - дерево каталогов отконфигурировано, и вы можете приступить к следующему шагу.

Необходимые библиотеки:

Библиотеки разработчика, необходимые для сборки дополнительных модулей Yate:

Если вы хотите регистрировать пользователей в базе данных, вам понадобятся:

  • Библиотека MySQL - используется в модуле MySQL.
  • PostgreSQL - используется в модуле PostgreSQL.
  • Библиотека OpenH323 - используется в модуле каналов H323.
  • spandsp, используемый модулем передачи факса - для отправки или приёма факса.

Больше об этих и других модулях вы можете прочитать на соответствующей странице.

Сборка исходного кода

Это самый простой, но в то же время важный и длительный шаг.

Минимум того, что вам надо выполнить - команда make:

Пользователям BSD вместо неё надо выполнить команду gmake.

Чтобы контролировать процесс сборки, вы можете указать следующие ключи после основной команды:

  • -s предоставляет "тихую" сборку - в этом случае отображаются только ошибки
  • Ключ debug собирает двоичные файлы с отладочной информацией.

Эти ключи могут быть употреблены вместе: make -s dbug

Обратите внимание: нормальный уровень отладки, вызываемый при помощи make debug НЕ мешает выполнению процесса и может быть полезен для информирования об ошибках.

Распространённые ошибки сборки:

 /tmp/ccxxXXX.o:(.data.rel.ro+0xXX): undefined reference to `non-virtual
 thunk to TelEngine::Driver::getObject(TelEngine::String const&) const'

В указанной директории уже присутствует файл libyate.so. Если до этого вы устанавливали Yate из пакетов, деинсталлируйте пакет yate-devel или yate-dev.

Если у вас остались файлы от предыдущей установки из исходного кода, выполните следующее:

 rm -f /usr/local/lib/libyate*.so
 rm -f /usr/local/lib64/libyate*.so

Установка двоичных файлов

После того, как вы собрали исходный код в двоичные файлы, их можно запустить из рабочей директории, но этого делать не рекомендуется. Вместо этого, их стоит установить в систему.

Для установки вам надо заполучить права суперпользователя (root) и выполнить следующую команду: make install-noapi.

Если вы не можете получить доступ к выполнению, воспользуйтесь вместо указанной выше команды следующей:sudo make install-noapi.

После этого все двоичные файлы Yate и другие необходимые компоненты будут установлены в разные подкаталоги в директории /usr/local. Вы можете изменить их расположение из настроек конфигурации сборки, но этого делать не рекомендуется - программы, собранные вручную лучше хранить отдельно от предоставляемых системой.

Настройка системы

Не во всех случаях возможно сразу запустить программное обеспечение, собранное и установленное в /usr/local, в этом случае необходимо заставить операционную систему делать это.

Сперва удостоверьтесь, надо ли это делать. Выполните эту команду с правами суперпользователя (root), так же, как и в большинстве других случаев: yate -V

Вы увидите: Yate x.y.z alpha1 или yate: error while loading shared libraries: libyate.so.x.y.z: cannot open shared object file.

В первом случае можно считать, что установка прошла успешно, и больше ничего делать не надо.

Во втором случае, предоставьте динамическому загрузчику /usr/local/lib или /usr/local/lib64.

Добавьте в файл /etc/ld.so.conf новую строку с необходимым путём расположения из выше указанных.

В большинстве операционных систем надо добавить lib, но на RPM-системах с архитектурой x86_64 надо будет добавить lib64 или и то, и другое (lib и lib64).

Отредактировав файл, выполните ldconfig и перезапустите yate.

Установка службы

Если вы хотите использовать Yate в качестве сервера, вам необходимо сделать некоторые дополнительные шаги, чтобы Yate запускался автоматически.

Редактирование файлов настроек

Перед запуском Yate вам необходимо произвести соответствующую конфигурацию:

  • Откройте папку /usr/local/etc/yate с файлами настроек и отредактируйте их (с правами суперпользователя (root)).
  • Можно вручную запустить Yate в консоли, чтобы удостовериться, что в системе есть всё необходимое. Укажите ключи уровня подробности и цвета вывода отладки: yate -vvv -CDoa.
  • Получив необходимую информацию, нажмите ^C (Ctrl+C), чтобы завершить приложение.

Подготовка сценария загрузки

Скопируйте yate.init из директории packing/ в /etc/init.d, где находятся все установленные сценарии загрузки. Обратите внимание, что сценарии и дополнительные инструменты зависят от используемого дистрибутива Linux.

Сделать это можно, только получив права суперпользователя (root):

 cp packing/rpm/yate.init /etc/init.d/yate-local
 chown root.root /etc/init.d/yate-local

Замените rpm комбинацией, соответствующей типу пакетной системы вашего дистрибутива.

После этого отредактируйте файл сценария загрузки, изменив путь к исполняемому файлу с /usr/bin на /usr/local/bin.

Возможно, вам придётся изменить ключи запуска из командной строки для получения более детального вывода отладки. Рекомендуется сделать это, чтобы активировать временные отметки в отладочных сообщениях.

Подготовка ротации (автоочистки) файлов отладочных сообщений (логов)

Скопируйте из директории сборки packing/yate.logrotate в директорию /etc/logrotate.d, переименовав копию файла в yate. Обратите внимание, что программа logrotate очищает файлы отладки раз в день, поэтому следите, чтобы у вас не накапливалось более 2 Гб файлов отладочных сообщений в сутки.

Для этого понадобится сделать владельцем файла суперпользователя (root).

 cp packing/yate.logrotate /etc/logrotate.d/yate
 chown root.root /etc/logrotate.d/yate

Если объём логов увеличивается слишком быстро, необходимо снизить уровень подробности отладочных сообщений или настроить logrotate так, чтобы он срабатывал чаще. Например, можно переместить сценарий logrotate из /etc/cron.daily в /etc/cron.hourly.

Настройка автоматического запуска сценария службы

Эта настройка зависит от используемого дистрибутива Linux.

Пользователям RPM-систем необходимо выполнить (с правами суперпользователя (root)): chkconfig yate-local on

Для пользователей дистрибутивов, основанных на Debian: update-rc.d yate-local defaults

Если ваш дистрибутив предоставляет графическую панель настроек, можно воспользоваться ей.

Запуск службы вручную

Если вы не собираетесь перезапускать сервер, следующую команду необходимо выполнить только один раз. Для выполнения команды необходимы права суперпользователя (root): service yate-local restart.

Помните: лучше использовать restart вместо start во избежание запуска нескольких процессов.

Отключение службы

Если вы хотите временно отключить службу, необходимо отключить её автоматический запуск и вручную остановить её:

 chkconfig yate-local off
 service yate-local stop

Способ может отличаться в зависимости от используемого дистрибутива Linux, но выполняется он в любом случае с правами суперпользователя (root).


ПОДПИСАТЬСЯ