Я достаточно давно занимаюсь вопросами 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
Спасибо за внимание. Хаб установлен, дальше только допиливать конфиг. Как говориться:
Пилите, Шура, пилите! Они золотые!