Главная > Мануалы, Софт > Установка Gluxi на FreeBSD 8

Установка 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

  1. arch
    20 Март 2011 в 14:54 | #1

    установка до конца не получается, в конечном итоге отсутствует файл запуска ‘gluxi’ …

  2. Иван
    20 Март 2011 в 14:58 | #2

    Быть может собирали не в директории debug? Ошибок при компиляции никаких небыло и все завершилось успешно?

  3. arch
    20 Март 2011 в 15:10 | #3

    #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

  4. Иван
    20 Март 2011 в 15:39 | #4

    @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.
    После установки пакета компиляцию бота следует запустить еще раз.

  5. arch
  6. arch
    20 Март 2011 в 15:53 | #6

    данная библиотека установленна:

    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

  7. Иван
    20 Март 2011 в 16:03 | #7

    @arch
    У Вас, скорее всего, установлен пакет более новой версии (покажите версию пакета — pkg_info | grep gloox). В этом случае необходимо удалить пакет и установить по ссылке выше.
    Или же Вы поставили пакет не для своей архитектуры (к примеру, у Вас x64, а пакет стоит для x32). В данном случае необходимо удалить такой пакет и поставить версию пакета gloox для Вашей архитектуры.

  8. arch
    20 Март 2011 в 16:44 | #8

    не удаеться установить, требует какие то старые версии…

    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

  9. Иван
    20 Март 2011 в 17:37 | #9

    @arch
    Очень похоже, что придется искать требуемые версии перечисленных выше пакетов, удалять уже установленные и устанавливать требуемые.
    К сожалению, для нормальной компиляции gluxi необходима версия gloox-0.9.9.8 и без нее никак не обойтись. Бот не развивается последнее время, и поддержка новых версий gloox вряд ли появится.

  1. Пока что нет уведомлений.
Потребление памяти: 9.62MB