Ставим Verlihub на FreeBSD

Я достаточно давно занимаюсь вопросами Direct Connect файлообменных сетей. И вот сегодня решил описать процедуру установки лучшего, на мой взгляд, движка хаба – Verlihub.

Начнем обо всем по порядку, по-шагово.


Шаг 1. Установка MySQL сервера.

Так как хаб работает на MySQL, то ставим его, для начала добавив в файл /etc/make.conf такие строки:

# Место расположения дерева портов FreeBSD
PORTSDIR?= /usr/ports

# MySQL 5.0
# Ключи оптимизации для сборки сервера баз данных MySQL
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql50-server
WITH_CHARSET=utf8
WITH_XCHARSET=all
WITH_COLLATION=utf8_bin
BUILD_OPTIMIZED=yes
BUILD_STATIC=yes
.endif

# Ключи оптимизации для сборки клиента баз данных MySQL
.if ${.CURDIR} == ${PORTSDIR}/databases/mysql50-client
WITH_CHARSET=utf8
WITH_COLLATION=utf8_bin
BUILD_OPTIMIZED=yes
.endif

Устанавливаем MySQL 5.0.x, так как работа других версий на данный момент меня лично не впечатлила:

/usr/home/fly8r/>cd /usr/ports/databases/mysql50-server
/usr/ports/databases/mysql50-server/>make install clean

После установки добавляем строки в /etc/rc.conf:

/usr/home/fly8r/>echo 'mysql_enable="YES"' >> /etc/rc.conf
/usr/home/fly8r/>/usr/local/etc/rc.d/mysql-server start

Starting mysql.

/usr/home/fly8r/>ps -axj | grep mysql

mysql     801     1   800    55    0 I    con-   0:00.00 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/opt/mysql
mysql     834   801   800    55    0 S    con-  96:34.67 /usr/local/libexec/mysqld --defaults-extra-file=/opt/mysql/database
root    67824 67648 67823 67648    2 S+    p0    0:00.00 grep mysql

Убедились, что мускул запустился, теперь ставим еще 2 пакета, которые необходимы для сборки Verlihub.

GeoIP:

/usr/ports/>make search name=geoip

Port:   GeoIP-1.4.6
Path:   /usr/ports/net/GeoIP
Info:   Find the country that any IP address or hostname originates from
Maint:  dhn@FreeBSD.org
B-deps: libtool-2.2.6b
R-deps:
WWW:    http://www.maxmind.com/geoip/

/usr/ports/>cd /usr/ports/net/GeoIP
/usr/ports/net/GeoIP/>make install clean

PCRE:

/usr/ports/>make search name=pcre

Port:   pcre-8.02
Path:   /usr/ports/devel/pcre
Info:   Perl Compatible Regular Expressions library
Maint:  krion@FreeBSD.org
B-deps:
R-deps:
WWW:    http://www.pcre.org/

/usr/ports/>cd /usr/ports/devel/pcre
/usr/ports/devel/pcre/>make install clean

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


Шаг 2. Сборка Verlihub 0.9.8e.

Скачиваем с сайта разработчика последнюю релизную версию хаба (на момент написания статьи это Verlihub 0.9.8e-r2):

/usr/home/fly8r/>wget http://www.verlihub-project.org/download/verlihub-0.9.8e-r2.tar.bz2

Распаковываем:

/usr/home/fly8r/verlihub/>tar xvfz verlihub-0.9.8e-r2.tar.bz2

Устанавливаем:

/usr/home/fly8r/verlihub/>./configure
/usr/home/fly8r/verlihub/>make
/usr/home/fly8r/velrihub/>make install

Теперь надо сконфигурировать хаб, для работы с нашей базой данных. Для этого в составе хаба идет скрипт vh_install. Его и запускаем:

/usr/home/fly8r/>vh_install


Шаг 3. Стартовый скрипт.

Ну и в завершении, чтобы во FreeBSD нам запустить наш хаб используем следующий стартовый скрипт:

#!/bin/sh

# PROVIDE: verlihub
# REQUIRE: DAEMON mysql
#
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
# to enable this service:
#
# verlihub_enable (bool):   Set to NO by default.
#               Set it to YES to enable verlihub.
#

. /etc/rc.subr

name="verlihub"
rcvar=${name}_enable

command=/usr/local/bin/${name}
pidfile=/var/run/${name}.pid

logfile=/var/log/${name}.log
errfile=/var/log/${name}.err
command_args="> $logfile 2> $errfile &"

: ${verlihub_configdir="`/usr/local/bin/vh_getcfg`"}
required_dirs="$verlihub_configdir"
required_files="$verlihub_configdir/dbconfig $verlihub_configdir/motd $verlihub_configdir/help_usr $verlihub_configdir/faq $verlihub_configdir/rules"

load_rc_config $name

: ${verlihub_enable="NO"}

start_postcmd="echo \$! > $pidfile"
stop_postcmd="rm $pidfile"

export "VERLIHUB_CFG=$verlihub_configdir"

run_rc_command "$1"

Он основан на исправленной копии стартового скрипта этого же хаба из портов /usr/ports/net-p2p/verlihub/files/verlihub.in. Ну и добавляем следующее в /etc/rc.conf:

/usr/home/fly8r/>echo 'verlihub_enable="YES"' >> /etc/rc.conf

Спасибо за внимание. Хаб установлен, дальше только допиливать конфиг. Как говориться:

Пилите, Шура, пилите! Они золотые!

Add Comment

Required fields are marked *. Your email address will not be published.