Предыстория
В проекте algoprog.kz для проверки задач используется система eJudge. У нее есть отдельный web интерфейс, написанный на С, позволяющий в первую очередь управлять и следить за соревнованием. Исторически так сложилось, что эти CGI скрипты запускали из под apache, а я свои проекты запускаю по Nginx. В общем мне захотелось избавиться от apache и научиться запускать CGI скрипты из под Nginx. Далось мне это не так легко.
Дальше
На algoprog.kz используется немного пропатченая версия ejudge.
Тестировал на версиях 2.3.16 и 2.3.17. Патч добавляет такие функции в еjudge-contests-cmd:
- dump-languages - получить языки контеста
- get-contest-status - получить статус контеста
- get-contest-sched - время старта
- get-contest-duration - длительность
- get-contest-description - три предыдущих вместе + название контеста
- submit-run-v2 - сабмит задачи не по short_name а по id
Дальше...
каждый раз ставлю ejudge и каждый раз приходится вспоминать какие пакеты надо поставить
и как надо сконфигурировать. в этот раз сохраню лог проделанной работы
тут описано все коротко. полезно будет тому кто уже знаком с установкой.
а кто не знаком идет сюда.
у меня стоит убунту 10.04
Linux german-desktop 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:09:38 UTC 2010 x86_64 GNU/Linux
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install gettext
sudo apt-get install expat
sudo apt-get install libexpat1-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libncurses5-dev
sudo apt-get install libncursesw5-dev
sudo apt-get install sendmail
вот эти пакеты мне пришлось поставить чтобы все скомпилировалось.
а порядок установки такой:
- качаем reuse
- я хроню его в папке
~/distr/reuse
- заходим в
~/distr/reuse/sources выполняем ./configure && make && make install
- заходим в папку куда распаковали eJudge выполняем конфигур
чтобы было проще создал скрипт my-confugure.sh
- выполняем
make && make install
- заходим в папку
/home/$user/ejudge/bin запускаем ./ejudge-setup
- сохранив скрипт запускаем
sudo ./ejudge-install.sh
my-configure.sh
#!/bin/sh -x
user=german
exec ./configure --prefix=/home/$user/ejudge --with-reuse=/home/$user/distr/reuse --enable-charset=utf-8 --enable-ajax --enable-contests-home-dir=/home/$user/judges --enable-local-dir=/var/lib/ejudge --enable-hidden-server-bins "$@"
Компиляция pluginов
Для того чтобы у вас скомпилилось все что лежит в папке plugins
надо еще установить dev библиотеки mysql. Не знаю какой именно из них нужен,
я установил обои и все заработало.
sudo apt-get install libmysqlclient16-dev libmysql++-dev libmysqld-dev libmysqlclient-dev