Установка библиотеки gloox и компиляция программы на FreeBSD и Linux
(а так же несколько слов о установке локального Jabber-сервера eJabberd)
вернуться на страницу проекта

 Поскольку мой основной интерес связан всё таки с FreeBSD, я постараюсь осуществить привязку своего исследования именно к этой операционной системе. В частности, будут некоторые комментарии связанные с FreeBSD 9.0. Однако, поскольку для удобства разработки мной используется Ubuntu 12.04 LTS, рассмотрим установку и на эту систему.


1. Установка на Ubuntu 12 LTS
 Инсталляция библиотеки на Linux не вызывает каких либо сложностей и практически не имеет подводных камней. Имеется три пути получения библиотеки:
 1.1. Скачать исходники с сайта http://camaya.net/download/gloox-1.0.tar.bz2
 1.2. Получить стабильную версию из SVN: svn co svn://svn.camaya.net/gloox/branches/1.0 gloox-1.0
Примечание:
 Для работы библиотеки требуется удовлетворение нескольких зависимостей, а именно:

1.3. Кроме того, вы можете произвести установку посредством Центра приложений Ubuntu осуществив поиск по ключу libgloox и соответственно установив:
Примечание:
apt-get так же никто не отменял!

Примечание:
 Поскольку я использую среду разработки Code::Blocks IDE, я лишь немного упомяну о компиляции файлов. Компиляция проекта производится с библиотеками pthread и gloox, соответсвенно командная строка выглядит как

gcc -0 <binary file name> <source file .cpp> -lphtread -lgloox


 В среде Code::Blocks для подключения библиотек необходимо добавить в настройки Project | Build Options | Linker Settings строки -lpthread и -lgloox. (Либо глобально добавить эти строки в Settings | Compiler and Debugger | Linker Settings).


Вот собственно вся установка на Linux.

2. Установка библиотеки на FreeBSD 9.0
 Принципиально избегая установки из пакетов, рассмотрим процесс установки посредством системы портов. Библиотеку можно обнаружить в разделе дерева портов net-im (usr/ports/net-im/gloox). Соответственно, переходим в указанный директорий, и выполняем make install. Зависимости тянутся те-же что и в Linux, однако здесь меня ожидала некая неприятность, которая выразилась в проблему несоответствия версии пакета p11-kit и соответственно gnuTLS требованиям библиотеки. Проблема решилась путём деинсталляции p11-kit-0.9 и установки p11-kit-1.0. Следующая неприятность выражалась в не желании линкера собирать бинарник с ключём -lgloox. Соответственно, проблема решилась ключём -L /usr/local/lib. Такми образом, сборка бинарника из командной строки производится с помощью команды: gcc -o <binary file> <source file.cpp> -lpthread -lgloox -L /usr/local/lib.

3. Установка локального Jabber-сервера eJabberd
 У вас может возникнуть желание производить исследования работая с локальным сервером jabber, что позволит самостоятельно исследовать некоторые возможности настройки и не зависить от чужих ресурсов. Кроме того, появится полезная возможность контролировать логи сервера в случае возникновения непонятностей или использования особых опций.

 Давайте рассмотрим вариант установки локального сервера на Ubuntu 12. Будем устанавливать высокопроизводительный Jabber/XMPP сервер ejabberd. Кроме всего прочего, он имеет хороший административный web-интерфейс (в том числе и русский).


 Собственно, на этом установка завершена и вы можете перейти в панель управления. В браузере, набираете адрес http://servername.com:5280/admin (для localhost - http://localhost:5280/admin) и вводите имя и пароль администратора.

 Для работы с локальным сервером, необходимо зарегистрировать на нём как миним две учётные записи - одна как пользователя, от которого вы планируете общаться (например с разрабатываемым ботом) и вторую, которую будет использовать сам бот (или тестовый клиент).

4.1 Установка ejabberd на FreeBSD  
 Установка ejabberd на FreeBSD несколько более энергоёмкая. ejabberd устанавливается из раздела дерева портов /usr/ports/net-im/ejabberd. Соответсвенно, переходим в указанный директорий и выполняем make install. ejabberd тянет в зависимости erlang, много ещё чего...