Об IRC. Доступно и со вкусом.

Ставим ircd + services под *nix

В данной статье рассказывается как установить iRCD и прикрутить к нему сервисы под управлением ОС Linux! (На примере Unreal 3.2.3 + Anope 1.6.3)
ircd - IRC Daemon (ИРЦ "демон", а по русски - служба internet relay chat)
Для примера используем модный на данный момент демон Unreal IRCD (3.2.3) и сервисы Anope
(1.6.3 stable, не ругайтесь что уже есть 1.7.8 - это девел версии, а мы за стабильность ;))

Итак, для начала установим сам сервак. Устанавливается он не по-русски, так что не пытайтесь сразу же тыкать ./configure в корне.
а делаем вот как

# cd /usr/local
# tar -vxzf /path/to/src/Unreal3.2.3.tar.gz
(для удобства можно сделать линк)
# ln -s ./Unreal3.2 ./unreal

# cd ./Unreal3.2

а дальше будьте внимательны. Запускаем скрипт конфигурации:

# ./Config

Дальше скрипт задаст вам пару вопросов, таких как путь к бинарникам и всякие параметры сервера по умолчанию.
Если не хочется разбираться, просто жмите ввод на каждом пункте - подставятся значения по умолчанию.
Далее подождите пока скрипт выполнит всё необходимое. Если процесс завершится без ошибок - бьём

# make

и ждем пока собирется сам демон.. Когда собрался - инсталлирвоать его не надо, он уже на месте.
Надо проверить, появился ли в /usr/local/Unreal3.2 исполняемый файл unreal - если да, то все хорошо.
А если нет, то значит произошли какие-то критические ошибки. Быть может у вас не удовлетворенные зависимости или старый компилятор.

Поставим права на папку

# cd /usr/local/Unreal3.2
# chown -R master:master .

Сервак стоит, попробуем запустить..

$ cd /usr/local/Unreal3.2
$ ./unreal start

если скрипт выдаст на экран картинку и покроет вас матом - все ок, сервак работает а конфига то нет =)
в папке doc есть файл example.conf - его следует подредактировать, переименовать в unrealircd.conf и положить в корень сервера
(у нас - /usr/local/Unreal3.2)
так же следует создать файлы, которые влияют на работу сервака (это всяческие файлы логов, мотда, правил итп) -
создавайте по мере требования их сервером. например:

$ echo "" > /usr/local/Unreal3.2/ircd.motd

и так далее. Мой эксампл лежит тут.

итак, пробуем заново

$ cd /usr/local/Unreal3.2
$ ./unreal start

и смотрим что он скажет. Если все сделано верно - скрипт перейдет в режим демона. Проверить просто, можно вызвать netstat -a
и посмотреть, слушает ли у нас 6667 порт (или какой вы сделали)
или же метод более действенный

$ telnet 127.0.0.1 6667

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

# cd /usr/src
# tar -vxzf /path/to/anope/anope-1.6.3.tar.gz
# cd anope-1.6.3

далее запускаем ./configure и он опять задаст вам несколько вопросов. Я сервисы ставил в /usr/local/services - ставим туда же.
после конфигура - пишем "make" а затем "make install" - сервисы готовы. Проверим

$ cd /usr/local/services
$ ./services -debug -nofork

и поглядим. Он должен заплакать что у нас нет правильного конфигурационного файла, не беда!
в корне сервисов есть файл example.conf - переименуем его в services.conf попутно редактируя.
В конфиге нужно просто задать адрес сервера и порт, к которому производить подключение. Так же можно указать номер языка
(чтобы сервисы были русифицированны) а вот в unrealircd.conf там нужно дописать вот что (образец ищите выше)

listen 127.0.0.1:6669;
link services.local
{
username *;
hostname 127.0.0.1;
bind-ip 127.0.0.1;
port 6669;
hub *;
password-connect "LSD";
password-receive "LSD";
class servers;
options {
};
};
ulines {
services.local;
};


не забудьте перезапустить сервер и попытаемся запустить сервисы.

$ cd /usr/local/services
$ ./services -debug -nofork

(парамерты дебуг и ноуфорк - нужны лишь при первых запусках. Они не дают сервисам уйти в демоны и заставят вывести все ошибки в стдаут.)
при последующих запусках следует просто использовать

$ ./services

Если все сделали верно - на сервере появятся chanserv nickserv и их близкие. Вот и все!

Автор: master