Установка Gluxi на FreeBSD 8
Не так давно устанавливал многофункционального Jabber-бота Gluxi на VDS от хостинг-провайдера firstvds.ru под управлением FreeBSD 8. Рассмотрим процесс более подробно.
Итак, первое что нам необходимо сделать – поставить основные пакеты, необходимые для компиляции и работы Gluxi.
pkg_add -r qt4
pkg_add -r qt4-qmake
cd /usr/ports/devel/cmake && make install clean
pkg_add -r qt4-moc
pkg_add -r qt4-uic
pkg_add -r qt4-rcc
cd /usr/ports/databases/qt4-pgsql-plugin && make install clean
cd /usr/ports/databases/qt4-pgsql-plugin && make install clean
После установки этого порта необходимо выполнить команду rm -rf /usr/ports/distfiles/*
pkg_add -r qt4-mysql-plugin
pkg_add -r qt4-odbc-plugin
pkg_add -r lynx
pkg_add -r openssl
pkg_add -r nano
pkg_add -r mercurial
Далее необходимо посмотреть какая версия gloox установлена в Вашей системе. Самый простой способ это сделать – воспользоваться командой pkg_info.
Если Вы видите версию, отличающуюся от gloox-0.9.x, или вообще не находите данного пакета, то для VDS на базе FreeBSD 8 данный пакет установить при помощи команды pkg_add -r http://files.ivanosipov.ru/ports/amd64/gloox-0.9.9.8.tbz
Следует отметить, что этот пакет подойдет только в случае использования архитекутры amd64. Если Вы используете i386, то следует воспользоваться одним из зеркал или скачать с моего сервера pkg_add -r
http://files.ivanosipov.ru/ports/gloox-0.9.9.12.tar.bz2
Установим PostgreSQL (если у Вас VDS от firstvds.ru, то данный пункт можно спокойно пропустить):
cd /usr/ports/databases/postgresql83-server; make install clean
cd /usr/ports/databases/postgresql83-client; make install clean
Отредактируем файл /etc/login.conf Тут необходимо просто дописать вставить строки:
# :tc=default:
postgres:\
:lang=en_US.UTF-8:\
:setenv=LC_COLLATE=C:\
:tc=default:
Теперь отредактируем файл /etc/rc.conf. Следует добавить строки:
postgresql_enable="YES"
Проведем инициализацию БД:
postgresql_class="postgres"
/usr/local/etc/rc.d/postgresql initdb
Запускаем PostgreSQL-server командой /usr/local/etc/rc.d/postgresql start
Отредактируем /usr/local/pgsql/data/pg_hba.conf В нем следует закомментировать следующую стоку
#host all all ::1/128 trust
Ниже должны быть строки:
local gluxi pgsql trust
local gluxi gluxi trust
local postgres pgsql trust
host gluxi gluxi 127.0.0.1/32 trust
host pgsql postgres 127.0.0.1/32 trust
host postgres pgsql 127.0.0.1/32 trust
host gluxi gluxi IP-адрес_Вашего_сервера/32 trust
host gluxi gluxi ::1/32 trust
Перезагрузим базу данных:
su pgsql
$ pg_ctl reload -D /usr/local/pgsql/data/
server signaled
Создадим базу данных gluxi и пользователя gluxi:
$ createdb gluxi;
$ createuser gluxi;
Shall the new role be a superuser? (y/n) y
$ psql -U pgsql gluxi
gluxi=# alter user gluxi with password 'Пароль_к_базе_данных_gluxi';
ALTER ROLE
Приступим к сборке Gluxi:
cd /home
hg clone http://hg.inhex.net/gluxi-dev
cd gluxi-dev
mkdir debug
cd debug
cmake ..
gmake
cp /home/gluxi-dev/sql/pgsql.sql /home/gluxi-dev/debug/pgsql.sql
cp /home/gluxi-dev/sql/config.sql /home/gluxi-dev/debug/config.sql
cp /home/gluxi-dev/gluxi.cfg /home/gluxi-dev/debug/gluxi.cfg
psql -U gluxi gluxi < pgsql.sql
psql -U gluxi gluxi < config.sql
Обновим базу данных gluxi. Идем cd /home/gluxi-dev/sql/update/ и редактируем файл dbupdate.sh:
#!/bin/sh
DBHOST="localhost"
DBNAME="gluxi"
DBUSER="gluxi"
DBPASS="Пароль_к_базе_данных_gluxi"
DBTYPE="$1"
QUERYCMD=""
INLINE_SUFFIX=""
Запустим отредактированный скрипт обновления командой cd /home/gluxi-dev/sql/update/dbupdate.sh
На самом последнем этапе редактируем конфиг /home/gluxi-dev/debug/gluxi.cfg. Тут ничего сложного нет, однако, хочу обратить внимание читателя на следующие строки, которые должны присутствовать в gluxi.cfg:
[database]
type=QPSQL
server=localhost
port=5432
user=gluxi
password=12345
database=gluxi
После проведенных операций можем смело запускать бота:
cd /home/gluxi-dev/debug && screen ./gluxi
установка до конца не получается, в конечном итоге отсутствует файл запуска ‘gluxi’ …
Быть может собирали не в директории debug? Ошибок при компиляции никаких небыло и все завершилось успешно?
#gnake
[. . . .]
/usr/bin/ld: warning: libidn.so.16, needed by /usr/local/lib/libgloox.so, not found (try using -rpath or -rpath-link)
/usr/local/lib/libgloox.so: undefined reference to `stringprep_nameprep@LIBIDN_1.0′
/usr/local/lib/libgloox.so: undefined reference to `stringprep@LIBIDN_1.0′
/usr/local/lib/libgloox.so: undefined reference to `stringprep_xmpp_resourceprep@LIBIDN_1.0′
/usr/local/lib/libgloox.so: undefined reference to `idna_to_ascii_8z@LIBIDN_1.0′
/usr/local/lib/libgloox.so: undefined reference to `stringprep_xmpp_nodeprep@LIBIDN_1.0′
gmake[2]: *** [gluxi] Error 1
gmake[1]: *** [src/base/CMakeFiles/gluxi.dir/all] Error 2
gmake: *** [all] Error 2
@arch
У Вас не установлена библиотека libgloox. Если Вы используете систему х64, то поставить пакет можно при помощи команды pkg_add -r http://files.ivanosipov.ru/ports/amd64/gloox-0.9.9.8.tbz ; в случае, если у Вас i386, то командой pkg_add -r http://files.ivanosipov.ru/ports/gloox-0.9.9.12.tar.bz2.
После установки пакета компиляцию бота следует запустить еще раз.
http://dumpz.org/42096/
данная библиотека установленна:
artback# pkg_add -r http://files.ivanosipov.ru/ports/amd64/gloox-0.9.9.8.tbz
Fetching http://files.ivanosipov.ru/ports/amd64/gloox-0.9.9.8.tbz… Done.
pkg_add: package ‘gloox-0.9.9.8’ or its older version already installed
artback# pkg_info | grep gloox
gloox-0.9.9.8 Jabber/XMPP client library
@arch
У Вас, скорее всего, установлен пакет более новой версии (покажите версию пакета – pkg_info | grep gloox). В этом случае необходимо удалить пакет и установить по ссылке выше.
Или же Вы поставили пакет не для своей архитектуры (к примеру, у Вас x64, а пакет стоит для x32). В данном случае необходимо удалить такой пакет и поставить версию пакета gloox для Вашей архитектуры.
не удаеться установить, требует какие то старые версии…
artback# pkg_add -r http://files.ivanosipov.ru/ports/amd64/gloox-0.9.9.8.tbz
Fetching http://files.ivanosipov.ru/ports/amd64/gloox-0.9.9.8.tbz… Done.
pkg_add: warning: package ‘gloox-0.9.9.8’ requires ‘pkg-config-0.23_1’, but ‘pkg-config-0.25_1’ is installed
pkg_add: warning: package ‘gloox-0.9.9.8’ requires ‘libiconv-1.13.1’, but ‘libiconv-1.13.1_1’ is installed
pkg_add: warning: package ‘gloox-0.9.9.8’ requires ‘gettext-0.17_1’, but ‘gettext-0.18.1.1’ is installed
pkg_add: warning: package ‘gloox-0.9.9.8’ requires ‘libidn-1.14’, but ‘libidn-1.19’ is installed
pkg_add: warning: package ‘gloox-0.9.9.8’ requires ‘libgpg-error-1.7’, but ‘libgpg-error-1.10’ is installed
pkg_add: warning: package ‘gloox-0.9.9.8’ requires ‘libgcrypt-1.4.4’, but ‘libgcrypt-1.4.6’ is installed
@arch
Очень похоже, что придется искать требуемые версии перечисленных выше пакетов, удалять уже установленные и устанавливать требуемые.
К сожалению, для нормальной компиляции gluxi необходима версия gloox-0.9.9.8 и без нее никак не обойтись. Бот не развивается последнее время, и поддержка новых версий gloox вряд ли появится.