Ubuntu 18.04 LTS에서 DOMjudge 5.3.2 설치


1. DOMjudge에 필요한 소프트웨어 설치


1
sudo apt install -y gcc g++ make zip unzip mysql-server apache2 php php-cli libapache2-mod-php php-gd php-curl php-mysql php-json php-zip php-gmp php-xml php-mbstring bsdmainutils ntp phpmyadmin libcgroup-dev linuxdoc-tools linuxdoc-tools-text groff texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended texlive-lang-european
cs


관리자 메뉴얼에 나온 명령어에서 php-mcrypt를 제외하고 설치하였다. 19.04 LTS에는 PHP 7.2가 설치되어 있는데 PHP 7.2에서는 php mcrypt가 제거되었다고 한다.(출처: 링크)


다음 명령어를 추가적으로 입력한다.


1
2
sudo phpenmod json
sudo apt install libcurl4-gnutls-dev libjsoncpp-dev libmagic-dev
cs


다음은 채점에 사용할 컴파일러를 설치한다.

아래 명령어에서 마지막 두줄 gcc g++ ~ fp-compiler 부분을 원하는 언어에 맞는 컴파일러를 설치하면 된다. 아래 예시는 C, C++, Java(OpenJDK), Haskell, Pascal 이다.


1
2
3
4
sudo apt install make sudo debootstrap libcgroup-dev \
        php-cli php-curl php-json php-zip procps \
        gcc g++ openjdk-8-jre-headless \
        openjdk-8-jdk ghc fp-compiler
cs


나는 C, C++, Java 언어를 채점할 것이기 때문에, 마지막 두 개는 제외했다.

1
2
3
4
sudo apt install make sudo debootstrap libcgroup-dev \
        php-cli php-curl php-json php-zip procps \
        gcc g++ openjdk-8-jre-headless \
        openjdk-8-jdk
cs


여기까지 DOMjudge에 필요한 소프트웨어 설치를 완료했다.


2. 소스 다운로드 및 빌드


DOMjudge 다운로드


1
wget https://www.domjudge.org/releases/domjudge-5.3.2.tar.gz 
cs



다운받은 파일을 압축해제 한다.


1
tar -xf domjudge-5.3.2.tar.gz
cs



압축 해제한 domjudge-5.3.2 디렉토리로 이동하여 소스코드 컴파일 및 설치를 한다.


1
2
3
4
5
6
7
8
9
cd domjudge-5.3.2/
 
./configure --prefix=$HOME/domjudge
 
make domserver && sudo make install-domserver
 
make judgehost && sudo make install-judgehost
 
make docs && sudo make install-docs
cs


DOMjudge의 domserver와 judgehost 설치 완료



설치를 완료하면 domjudge 디렉토리가 생성되어있다.


3. 데이터베이스 설치

domjudge 디렉토리의 domserver로 이동한 후 데이터 베이스를 설치한다.


1
2
3
cd domjudge/domserver
 
sudo bin/dj_setup_database -u root -r install
cs


데이터베이스 설치를 완료하면 다음과 같은 화면을 확인할 수 있다.



4. 웹 서버 설정

DOMjudge는 웹기반 채점 시스템이다. DOMjudge를 운영하기 위한 웹 서버를 설정해야 한다.

etc/apache.conf 파일을 환경에 맞게 수정한다.


1
sudo vi apache.conf
cs


나는 DOMjudge를 테스트 하기 위한 목적이기 때문에 apache.conf 파일에서 아래 그림과 같이 일부 주석을 해제하여 사용하였다.



아파치에서 사용할 수 있도록 링크 연결 및 아파치 재시작


1
2
3
4
5
6
7
sudo ln -s ~/domjudge/domserver/etc/apache.conf /etc/apache2/conf-available/domjudge.conf
 
sudo a2enmod rewrite
 
sudo a2enconf domjudge
 
sudo service apache2 reload
cs


ln 명령어를 입력할 때, 전체 경로를 제대로 입력해주어야 a2enconf 명령어에서 오류가 발생하지 않는다.

/etc/apache2/conf-available 디렉토리를 보면 제대로 명령어를 제대로 수행하였는지 확인할 수 있다.

<정상 결과>


<잘못된 결과>

domjudge.conf 파일이 빨간색이면 잘못된 것이다.


5. DOMjudge의 domserver 설치 완료

위 과정을 완료한 후 DOMjudge 주소로 접속하면 다음 그림과 같은 메인 화면을 볼 수 있다.

1
주소/domjudge/public
cs


1
localhost/domjudge/public
cs



관리자 아이디와 비밀번호인 admin/admin 으로 로그인하면 관리자 페이지로 접속 가능하다.



6. 채점을 위한 judgehost 설치


1
2
useradd -d /nonexistent -U -M -s /bin/false domjudge-run
groupadd domjudge-run
cs


/etc/default/grub을 편집해야 한다.

에디터를 이용하여 다음과 같이 해당 부분을 수정한다.


1
GRUB_CMDLINE_LINUX_DEFAULT="quiet cgroup_enable=memory swapaccount=1"
cs


수정 후 업데이트 및 재부팅한다.


1
2
update-grub
reboot
cs




다음 명령어를 입력하여 chroot 설치를 진행한다.


1
sudo bin/dj_make_chroot
cs


채점 judgedamon 실행


1
./bin/judgedaemon
cs


데몬을 실행하면 다음 그림과 같이 실행 중인 데몬의 상태를 확인할 수 있다.



7. Example 채점

팀하나를 생성한 후 예제 문제 중 Hello world! 를 출력하는 세번째 문제를 C++, Java를 이용하여 제출해 보았다.

정상적으로 채점하는 것을 확인할 수 있었다.

(작년에 채점 시도했을 땐 Java 언어에서 JVM 메모리 문제로 사용할 수 없었는데, 이번에는 한번에 되었다.)



이상으로 Ubuntu에서 DOMjudge를 설치해 보았습니다.

테스트를 위한 목적으로 메뉴얼을 따라 필수적은 부분만 설정했습니다.

실제 운용을 위해서는 추가적인 설정이 필요합니다.


참고자료

DOMjudge 홈페이지: https://www.domjudge.org

관리자 메뉴얼: https://www.domjudge.org/docs/admin-manual-3.html

'온라인 저지 > DOMjudge' 카테고리의 다른 글

VMware Workstation + Ubuntu 설치  (0) 2018.06.18

온라인 저지를 우분투 환경에서 구축하려고 한다.

여분의 PC가 있다면 따로 설치하겠으나 없으므로 가상환경을 이용하려고 한다.


1. VMware Workstattion 설치

VMware Workstation은 공식 사이트에서 다운로드 할 수 있다. 

나는 윈도우 환경에서 사용할 것이기 때문에 윈도우 용으로 다운받았다.



다운 받은 후, 원하는 위치에 설치하면 된다.


2. Ubuntu 다운로드

공식 사이트에 2018년 6월 18일 기준으로 18.04 LTS 버전이 있어서 다운받았다.




3. VMware에서 Ubuntu 설치하기

1) Player -> File -> New Virtual Machine

2) 3번째 항목의 I will install the operating system later 선택

3) Linux와 우분투 버전 선택


4) 가상머신 이름 및 위치 설정

5) 디스크 크기 설정

6) Customize Hardware... -> New CD/DVD(SATA) -> Use ISO image file: -> 다운받은 우분투 선택 -> colse

7) Finish 


8) 생성된 우분투 실행

VMware Tools 를 설치할 것이냐고 묻는창이 뜬다. 내 컴퓨터에서는 우분투 설치중 다운로드 하면 에러가 발생하여 우분투 설치 후 VMware Tools를 설치하려고 한다.


9) Install Ubuntu 클릭

언어 및 키보드 선택 후 우분투 설치


사용 환경에 맞게 설정 후 continue를 클릭하여 설치를 완료하면 된다.


10) Ubuntu 설치 완료


우분투를 설치 하고나면 화면 해상도가 맞지 않기 때문에 해상도를 변경해야 한다.

Setting -> Devices -> Display 에서 원하는 해상도로 변경하면 된다.

Display 창에서 Apply버튼이 보이지 않는다면 가장 상단을 더블클릭하면 전체화면<->창화면 변환이 가능해서 Apply 버튼을 확인할 수 있다.

'온라인 저지 > DOMjudge' 카테고리의 다른 글

DOMjudge 설치  (0) 2018.06.18

+ Recent posts