п≤п╫я│я┌п╟п╩п╩я▐я├п╦я▐ я│п╦я│я┌п╣п╪я▀ ejudge
Предполагается (если не указано особо), что все действия совершаются от имени юзера ejudge
EJUDGE_HOME - Домашний каталог пользователя ejudge (который вы указывали при создании)
Создайте каталог /home/judges и дайте ему права пользователя ejudge. Делается это так (от имени root):
# mkdir -p /home/judges # chown ejudge:ejudge /home/judges # chmod 755 /home/judges
Если нет прав root - то можно создавать каталог EJUDGE_HOME/judges. Далее я буду называть этот каталог JUDGES_DIR
Скачать архив с исходными текстами системы можно в архиве программ
К слову, самая новая версия не всегда на самом верху в списке версий
При помощи wget (VERSION - версия):
# wget http://www.ejudge.ru/download/ejudge-VERSION.tgz
Для установки - следующие команды:
# tar -xvzf ejudge-VERSION.tgz # cd ejudge # ./configure PARAMS # make && make install
PARAMS - параметры конфигурации
Ниже - некоторые параметры (которые обычно требуются)
- --enable-charset=ENCODING - использование определенной кодировки в программе. ENCODING может быть, например, "UTF-8" или "KOI8-R". Указывать очень желательно, т.к. часто из-за неуказания появляются ошибки при компиляции
- --prefix=EJUDGE_PREFIX - корневой каталога программы. Если не задавать его, могут возникнуть проблемы. PREFIX предлагается задать как EJUDGE_HOME/inst-ejudge
- --with-reuse=REUSE_HOME - каталог с reuse. Если вы делали все как написано в разделе инсталляции reuse, то это будет EJUDGE_HOME/reuse . Указывать так же обязательно.
- --enable-contests-home-dir=JUDGES_DIR - Каталог для контестов. JUDGES_DIR мы уже задавали выше.
- --enable-conf-dir=CONF_DIR - директория конфигурации ejudge. Предлагается использовать CONF_DIR как JUDGES_HOME/data
- --enable-cgi-conf-dir=CGICONF_DIR - директория конфигурации cgi-программ. Указывается относительно, обычно это "../cgi-data"
- --with-httpd-cgi-bin-dir=CGI-BIN-DIR - каталог cgi-bin вашего сервера. Где он находится - можно узнать в конфигурации вашего веб-сервера.
- --with-httpd-htdocs-dir=HTDOCS-DIR - каталог, в который кладутся веб-файлы (.html, .php, etc). Где он находится - опять же написано в конфигурации вашего сервера. В HTDOCS-DIR/ejudge будут помещены несколько js и css файлов
Параметры, которые необязательно ставить:
- --enable-ajax - включает движок ajax для системы
- --with-libcap, --with-libcap-include-dir, --with-libcap-lib-dir - об этом рассказано в инсталляции reuse
- --with-expat=EXPAT_DIR - Каталог с библиотекой expat. Если вы устанавливали expat через систему управления пакетами (кстати, надо ставить не только пакет expat, но и пакет -dev (-devel) к нему) или компилировали её без параметра --prefix, то указывать не надо.
- --with-mysql=MYSQL-DIR - Каталог с mysql. Если компилировали mysql с нестандартным префиксом, то надо его указать. Вообще это необязательный параметр, MySQL может понадобиться только для некоторых необязательных плагинов
Параметры языков программирования (указывайте их только если устанавливали какой-то нужный язык в необычную директорию, или если он установлен, а ./configure его не находит)
- --with-gcc - каталог с компилятором GCC (Язык С)
- --with-gcc - каталог с компилятором G++/GPP (Язык С++)
- --with-fpc - каталог с компилятором FreePascal (Язык Pascal)
- --with-gpc - каталог с компилятором GPC/GCC-Pascal (Язык Pascal)
- --with-dcc - каталог с компилятором Delphi (точнее kylix) (Язык Pascal/Delphi)
- --with-gcj - каталог с компилятором GCJ/GCC-Java (Язык Java)
- --with-g77 - каталог с компилятором G77/GCC-gfortran (Язык Fortran77)
- --with-yabasic - каталог с компилятором Yabasic (Язык Basic)
- --with-scheme - каталог с компилятором MzScheme (Язык Scheme)
- --with-python - каталог с интерпретатором Python (Язык Python)
- --with-perl - каталог с интерпретатором Perl (Язык Perl)
- --with-prolog - каталог с компилятором GNU Prolog (Язык Prolog)
- --with-festival - каталог с компилятором Festival
- --with-javac - каталог с компилятором SUN Java (Язык Java)
- --with-mcs - каталог с компилятором Mono-C# (Язык C#)
- --with-mbas - каталог с компилятором Mono-Basic (Язык Basic#)
Что бы узнать все остальные параметры надо набрать:
# ./configure --help
Если в процессе компиляции возникла ошибка, надо перепроверить конфигурационный скрипт или обратиться к разработчику.
Итак, мы выполнили ./configure, make, make install. Но это еще не все.
Теперь создать конфигурацию ejudge. Для этого предназначен скрипт ejudge-setup
# ./ejudge-setup
Заходим по очереди в каждый пункт меню и меняем все, что неверно, на верные параметры.
Некоторые комментарии:
1. В панели "Ejudge Settings" есть пункт меню "Create Workdisk?" Если вам недоступен loop (например, на некоторых серверах VDS), то укажите там "no", вернитесь в меню "Edit Path" и напишите в "Testing Working Dir" какой-нибудь доступный (желательно пустой) каталог. 2. Меню "Edit Administrator Identity" надо заполнять так: * ID: 1 * Login: ваш логин (например, Admin) * E-Mail - ваша почта * Name - какое имя будет отображаться * Password - ваш пароль (надо ввести два раза)
После заполнения сохраняем файл пунктом "Save Setup Script", затем от пользователя root запускаем установку
# ./ejudge-install.sh
Осталось лишь выставить права на доступ к ссылкам на исполняемые файлы, которые установил ejudge:
# cd CGI-BIN-DIR # chmod 755 new-* judge master register serve-control team users
Теперь можно запустить ejudge (это делается только от имени ejudge!):
# cd EJUDGE_PREFIX/bin # ./ejudge-control start
Если после этого ваш вебсервер выдаёт ошибку - стоит удалить все файлы в CGI_BIN_DIR (на самом деле это ссылки на файлы) и скопировать туда файлы из EJUDGE_PREFIX/libexec/ejudge/cgi-bin:
# cd CGI_BIN_DIR # rm -rf new-* judge master register serve-control team users # cp EJUDGE_PREFIX/libexec/ejudge/cgi-bin/* ./
Если и после этого появляется ошибка - стоит обратиться к разработчику