Sistem de testare Ejudge

ejudge este un sistem de desfășurare a diferitelor activități în care este necesară verificarea automată a programelor. Sistemul poate fi folosit pentru a organiza olimpiade și pentru a susține cursuri de instruire.

Sistemul ejudge este alcătuit din mai multe programe, iar interfața participantului la turneu și administratorul turneului este furnizată prin WEB. Programe de master, judecător, echipa, registru, utilizatorii sunt programe CGI, adică sunt lansate din cadrul serverului httpd.

Verificați dacă ejudge-ul este disponibil în formularul asamblat în magazia de distribuție. În acest caz, este mai bine să utilizați versiunea din distribuție. Dacă nu există versiunea finalizată a ejudge pentru distribuția dvs., trebuie să compilați sistemul din codul sursă. (Notă: nu există niciun pachet cu sistemul ejudge la momentul prezentului articol pentru distribuțiile Debian / Ubuntu.)

Următorul este procesul de instalare și configurare a sistemului ejudge din codul sursă pentru Ubuntu Linux. La instalarea sistemului au fost utilizate materiale de pe site-ul oficial al sistemului de testare ejudge (www.ejudge.ru) și ejudge Wiki.

Pregătirea unui mediu de lucru pentru instalarea ejudge

Pregătirea mediului de lucru constă în următoarele etape:
  1. Trebuie să instalați următoarele programe și biblioteci terțe părți:
    • bizon
    • flex
    • ncurses, ncurses-devel (în Debian / Ubuntu este: ncurses-base, libncurses, libncurses-dev, libncursesw, libncursesw-dev)
    • expat, expat-devel (în Debian / Ubuntu este: expat, libexpat, libexpat-dev)
  2. Creați un utilizator ejudge al grupului ejudge cu directorul home / home / ejudge /:
    #groupadd ejudge
    # useradd ejudge -s / bin / bash -m -d / home / ejudge -g ejudge
  3. Treceți la noul utilizator creat, pentru aceasta trebuie să tastați în consola:
    # su ejudge
  4. Instalăm biblioteca reutilizată.
    • Descărcați arhiva cu fișierele sursă ale versiunii curente a bibliotecii de reutilizare în directorul de domiciliu al utilizatorului ejudge din pagina principală a proiectului.
    • În consola, procedați în felul următor:
      $ tar -xvzf reutilizare-VERSION.tgz
      $ cd reutilizare / sursă
      $ ./configurează
      $ a face
      $ make install

Instalarea sistemului ejudge

Se presupune (cu excepția cazului în care se specifică altfel) că toate acțiunile sunt efectuate în numele utilizatorului ejudge
  1. Creați directorul / home / judges și dați-i drepturile de utilizator ejudge introducând-o în consoană ca root: # mkdir -p / home / judges
    # chown ejudge: ejudge / home / judecători
    # chmod 755 / home / judecători
  2. Descărcați arhiva cu fișierele sursă ale versiunii curente de ejudge din pagina principală a proiectului în directorul de domiciliu al utilizatorului ejudge.
  3. Pentru a instala ejudge, tastați următoarele comenzi în consola:
    $ tar -xvzf ejudge-VERSION.tgz
    $ cd ejudge
    $ ./configura PARAMELE
    $ a face face instalare

În cazul nostru PARAMS ia următoarele valori:

include motorul ajax pentru sistem


Astfel, comanda ./configure va arata astfel:

$ ./configure --prefix = / home / ejudge / Inst-ejudge --with-reutilizare = / home / ejudge / reutilizarea --enable-concursuri-home-dir = / home / judecători --with-httpd-cgi- bin-dir = / usr / lib / cgi-bin - cu-httpd-htdocs-dir = / var / www / --enable-ajax


Parametrii necesari pentru configurare sunt enumerați aici. Pentru a afla parametrii rămași, trebuie:
$ ./configure --help

ANUNȚ:
Utilizatorul ejudge trebuie să aibă acces la fișierele web și directorul cgi-bin al serverului apache2. Dacă nu este cazul, setați drepturile de acces necesare la aceste directoare.

În primul rând, trebuie să creați o configurație ejudge. Pentru aceasta, scriptul de configurare ejudge este destinat:

Lansarea ejudge se face în numele ejudge:

$ cd / acasă / ejudge / inst-ejudge / bin /
$ ./ejudge-control start


NOTĂ: Dacă, atunci serverul web dă o eroare - încercați să ștergeți toate fișierele din directorul cgi-bin (de fapt link-uri la fișiere) și copia fișierele din / home / ejudge / Inst-ejudge / libexec / ejudge / cgi-bin:

$ cd / usr / lib / cgi-bin
$ rm -rf new- * judecătorul master registru serv-controlul utilizatorilor echipei
$ cp pentru EJUDGE_PREFIX / libexec / ejudge / cgi-bin / * ./


Acum puteți specifica în șirul de adrese URL al browserului (desigur, serverul httpd ar trebui să ruleze):

cerere

Configurarea serverului web Apache2

Pentru a lucra ejudge recomandat web server apache2 (puteți lucra cu apache server).

  1. Găsiți directiva în fișierul de configurare , unde $ în cazul nostru este / usr / lib / cgi-bin. Fragmentul fișierului de configurare ar trebui să arate astfel:


AllowOverride Nici unul
Opțiuni FollowSymLinks Include
AddOutputFilterByType INCLUDE text / html
Ordinul permite, respinge
Permiteți tuturor

  • Adăugați următorul fragment în fișierul de configurare:

    AddType text / html .shtml
    AddOutputFilter INCLUDES .shtml

  • Pentru a adăuga apache la fișierele * .css și * .js ale sistemului ejudge, precum și la directorul imagine, adăugați următorul fragment:

    Alias ​​/ ejudge / / acasă / ejudge / inst-ejudge / share / ejudge / stil /

    AllowOverride Nici unul
    Ordinul permite, respinge
    permiteți tuturor

    Patch la kernel-ul Linux

    Ejudge acceptă modul sigur de lansare a programelor în care programul rulat nu poate efectua apeluri de sistem. Pentru a susține pornirea în siguranță, trebuie să instalați un kernel cu un patch special. Descărcați patch-ul și consultați documentația pentru instalarea patch-ului pe pagina de pornire a proiectului.

    Nu este necesar un patch pentru sistemul de ejudge. În plus, plasturele poate fi adăugat chiar și după compilarea sistemului ejudge. Odată ce ejudge este găsit pentru a sprijini caracteristicile oferite de patch-uri, acestea vor fi utilizate de sistemul ejudge.

    Articole similare