Difference between revisions of "Инсталляция системы ejudge"

From EjudgeWiki
Line 106: Line 106:
 
Если и после этого появляется ошибка - стоит обратиться к разработчику
 
Если и после этого появляется ошибка - стоит обратиться к разработчику
  
 +
Более подробно: [http://www.ejudge.ru/INSTALL.RUS.txt]
  
 
Вернуться на страницу [[Инсталляция из исходных текстов|Инсталляции из исходных текстов]].
 
Вернуться на страницу [[Инсталляция из исходных текстов|Инсталляции из исходных текстов]].

Revision as of 18:20, 14 February 2008

Предполагается (если не указано особо), что все действия совершаются от имени юзера 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/* ./

Если и после этого появляется ошибка - стоит обратиться к разработчику

Более подробно: [1]

Вернуться на страницу Инсталляции из исходных текстов.