Skip to content

安装指南

massimodong edited this page Jul 10, 2018 · 3 revisions

这是WZOJ配套的判题机,需要一直在后台运行。

安装依赖

libcurl:
Debian: sudo apt-get install libcurl4-gnutls-dev
Ubuntu: sudo apt-get install libcurl4-gnutls-dev
Arch: sudo pacman -S libcurl-gnutls
Red Hat: sudo yum install curl-devel

编译安装

使用写好的安装脚本安装

chmod +x ./default-install.sh
./default-install.sh

手动编译安装

创建判题机用户judger,并复制需要的文件

mkdir -p /home/judger
mkdir -p /home/judger/etc
mkdir -p /home/judger/sim
cp ./doc/config.json.example /home/judger/etc/config.json
useradd -u 1537 -d /home/judger -s /bin/bash judger
chown -R judger.judger /home/judger

编译安装三部曲

./autogen.sh
make
make install

配置文件

修改/home/judger/etc/config.json文件

{
	"url": "localhost/",       //OJ地址
	"token": "token",          //判题机token,需要在OJ管理页面生成
	"sleep_time": 10,          //轮询间隔,每隔多久查询判题任务,设置成0为等待被动唤醒
	"max_running": 1,          //评测线程数,同时评测几份代码
	"sim_check": false         //是否执行代码相似度检测,请看WIKI
}

测试数据

判题机从/home/judger/data读取测试数据,请创建这个目录或创建软链到测试数据所在目录。
目录格式为data/题号/测试数据文件,其中每个测试点两个同名(区分大小写)文件,输入数据后缀为.in,标准答案后缀为.ans.out
示例:

├── /home/judger/data
│   ├── 2
│   │   ├── data1.in
│   │   ├── data1.out
|   |   ├── Data2.in
│   │   └── Data2.ans

后台运行

判题机需要在后台保持运行,可以使用screen之类的程序实现。
Screen User's Manual
screen中执行
sudo wzoj_judger
启动评测机
按下Ctrl+A+D退出screen

被动唤醒

如果OJ服务器能主动连接到评测机(在同一台电脑或同一个局域网等),则评测机不需要轮询评测任务,而是每一次有新的提交时被动地被OJ服务器唤醒。
设置方法:将评测机配置文件的sleep_time设为0,并在OJ管理页面处填上评测机ip地址就好了。