-----=# Что такое Eggdrop #=-------------------------------------------------
Eggdrop это IRC-бот написанный на C, но также имеющий начинку основанную на языке TCL (Tool Command Language) для написания скриптов расширения. Следует, однако, помнить и о том, что бот имеет API для создания внешних модулей на C, которые будут работать намного быстрее, чем TCL-скрипты, но менее удобны в написании и использовании, так как при внесении изменений в них, вам потребуется перекомпилировать сам модуль, или даже весь Eggdrop, если вы его компилируете, как Static.
-----=# Что нужно для работы #=----------------------------------------------
Для работы бота Eggdrop необходим shell. Shell'ом называют наличие доступа к серверу (обычно Unix-серверу) на котором у вас есть право работать как пользователь (закачивать, удалять, создавать, копировать файлы и, конечно же запускать). Обычно, shell-account можно получить следующими путями: 1) Купить (большинство крупных провайдеров продают shell-account'ы) 2) Взять бесплатно (выиграть, взломать, украсть) 3) Взять у знакомых владельцев серверов (обычно, все так и делают) 4) "Поднять" свой сервер (или запустить бота на локальной машине, которая 24h в сети) Совсем необязательно иметь Unix-машину для запуска бота, можно это делать и под AmigaOS, и под Windows.
-----=# История Eggdrop #=---------------------------------------------------
Первый релиз бота Eggdrop для широкого применения появился в декабре 1993 года. Тогда это была версия 0.6 и ее автор был, теперь уже небезызвестный, Роби Поинтер (Robey Pointer). Есть данные, что бот Eggdrop "родился" из бота, который носил имя Unrest. А работа над Eggdrop до версии 0.6 велась несколько лет. С тех пор, Eggdrop является самым продвинутым и многофункциональным ботом для IRC. Для него написано более десятка тысяч скриптов расширяющих его возможности. До версии 1.2 бота разрабатывал сам Роби, а с версии 1.3 его заменила команда Белдина (Beldin's development team). Эти же ребята пытались сделать заведомо неудачный проект Eggdrop2. Народу не понравились те нововведения и глюки, которых было в избытке, поэтому Eggdrop2 так и "умер" не родившись. Активность Белдина завершилась на версии 1.3.23 Дальнейшую разработку Eggdrop решила взять на себя команда Eggheads. В большинстве своем состоявшая из активных пользователей бота. Исходный код был выложен на CVS (Concurrent Version System), где и велась работа над ним. На данный момент времени они до сих пор и ведут этот проект. Сейчас существует две ветви развития Eggdrop: 1.6 - отлаженые версии бота для повседневного использования (STABLE) 1.7 - экспериментальные версии (DEVELOPMENT). Бот переписан "с нуля", добавлена модульная система поддержки различных языков программирования (теперь скрипты можно писать не только на TCL), и прочие значительные изменения. Заметка: название Eggdrop было взято из кулинарной книги, где давался рецепт приготовления "Eggdrop soup".
-----=# Где взять Eggdrop #=-------------------------------------------------
ftp://ftp.eggheads.org/pub/eggdrop/GNU/ Исходные коды всех версий бота включая последнюю beta-версию http://johoho.eggheads.org/eggdrop/ Скомпиленные версии бота под разные платформы Также можно скачать самую свежую версию бота используя систему CVS. Обычно это делается для того, чтобы можно было отлавливать баги в еще невыпущенных версиях бота и сообщать их разработчикам. Ну, а также иметь в своем распоряжении самую последнюю версию бота. Если же вы все-таки просто используете Eggdrop, я бы вам не рекомендовал работать на версиях с CVS, так как это все-таки девелоперские (возможно, нестабильные) версии. Но если вы хотите скачать последнюю версию с CVS, вам необходимо иметь установленный пакет для работы с CVS-системой. Обычно все операционные системы класса Unix оснащены им. Наличие можно проверить набрав в shell команду: cvs Если система сказала, что-то типа "command not found", это значит, что у вас не установен пакет поддержки CVS. Установите его. Если же вы увидели вывод встроенного help команды cvs, то все в порядке. В unix-shell наберите: 1) 'export CVSROOT=:pserver:anonymous@cvs.eggheads.org:/usr/local/cvsroot' 2) Затем наберите 'cvs login' 3) На запрос пароля нажмите <enter> 4) Наберите 'cvs checkout eggdrop1.6' (или нужную версию) 5) Далее произойдет обновление исходников в вашу локальную директорию 6) После завершения наберите 'cvs logout' В дальнейшем можно будет просто заходить в локальную директорию с исходниками и набирать 'cvs update' для автоматического обновления уже без использования приведенных выше шагов.
-----=# Компиляция #=--------------------------------------------------------
Для сборки Eggdrop вам обязательно необходим и TCL (язык программирования, который используется в ядре бота). Проверить наличие TCL можно набрав в shell команду: tclsh Если вы получите приглашение в виде символа "%", значит TCL есть. Если нет, то установите. Рекомендуемые к установке версии TCL: 8.0.x или 8.3.x Скачать TCL в исходниках можно с ftp-сайта: ftp://ftp.scriptics.com/pub/tcl/ Порядок сборки TCL: 1) Распакуйте архив с TCL (tar -zxf tcl8.x.x.tar.gz) 2) Зайдите в директорию с нужной платформой (cd tcl8.x.x/unix) 3) Наберите './configure' 4) Наберите 'make' 5) Наберите 'make install' И в /usr/local/lib появится libtcl8.x.x.so, в /usr/local/include директория tcl8.x.x, а в /usr/local/bin tcl-shell tclsh. Однако может наилучший вариант это установить TCL из пакета (rpm, tgz, deb). А вот Eggdrop лучше собирать самому, так как все зависит от того, как вы хотите потом использовать бота. Собрать Eggdrop можно в двух видах: Static - будет занимать меньше, чем eggdrop + dynamic-модули, и будет в одном файле. Таким образом менять версию бота для тестов или проверок намного проще, так как менять надо всего лишь один файл. А также, если ваш бот запускается в одном экземпляре и больше нет никаких других ботов запускающихся из этой же директории, то этот вид сборки тоже будет лучшим вариантом. Dynamic - будет в виде нескольких файлов (сам eggdrop и модули) и займет чуть больше, из-за заголовков и служебной информации в скомпилированных файлах. Но динамик выигрывает за счет экономии памяти при запуске нескольких ботов. Если запустить несколько ботов, то память будет общей. А также dynamic-модули можно загружать/выгружать на лету. Последовательность для сборки бота такова: 1) Скачать бота с сайта или ftp (архив будет с именем eggdrop-1.x.x-tar.gz) 2) Если не установлен TCL - скачать и поставить (установить можно как из исходников, так и из пакетов tgz, rpm, deb и т.п.) 3) Развернуть архив с ботом в нужную директорию. (tar -zxf <имя архива>) 4) Далее обычно хватает команды: ./configure Но если собирать нужно с конкретной версией TCL, то указывайте: ./configure --with-tcllib=<path>/libtcl8x.so --with-tclinc=<path>/tcl.h Где "x" нужный номер версии библиотеки. 5) Для автоматического подключения модулей: make config Для ручного подключения модулей: make iconfig 6) Для сборки бота как dynamic (обычно): make Для сборки бота как static: make static 7) make install DEST=<path> (для установки)