3.3 安装评测系统
还有一份专门为开发者准备的维护者安装方法,请参考附录:开发者信息,并跳过本节其余内容。
Domjudge 的构建/安装系统包括一个 configure
脚本和 makefiles
,但是安装的时候,您必须更加小心,而不是仅仅执行 ./configure && make && make install
。 Domjudge 需要同时安装在服务器和 judgehost 上,这就要求整个系统可以被部分安装;在安装系统中,这些部分分别是:domserver
、judgehost
和 docs(文档)
。
domjudge 可以安装成两种不同的目录结构:
单目录树 (Single directory tree)
使用此方法,所有和 Domjudge 相关的文件和程序都将安装在同一个目录树中,该目录树的前缀由
configure
的prefix
选项指定,例如:这将会给
domserve
、judgehost
、docs
在$HOME/domjudge
中分别创建一个子目录。可以使用--with-domserver\_root=DIR
等选项更改这些默认值,详细请参考configure --help
;默认的目录前缀是/opt/domjudge
。除了这些安装文件,还有一些用于存放日志文件,临时文件,提交的源码和测试数据的目录:
log:包含了所有的日志文件。
tmp:包含了所有的临时文件。
submissions:(可选) 仅仅作为备份,数据库中的文件更具有权威性;注意:未使用此功能,在 web 服务器上,该文件夹必须是 可写 的。
judgings:在 judgehost(评测机) 中;每一个提交都对应该文件夹中的一个子文件夹。
这是默认的安装方式,对于一般情景而言,这或许是最实用的安装方式,因为它最大限度地保证了所有的文件都在同一个地方,并且很容易就能找到。
符合 FHS 标准
此方法安装的 Domjudge 目录结构符合 文件系统层级结构标准(FHS);可以通过
configure
的--enable-fhs
参数启用,此时目录结构的前缀是/usr/local
;文件将会放到例如PREFIX/share/domjudge
、PREFIX/bin
、PREFIX/var/log
、PREFIX/etc/domjudge
中,并且缓存文件将被放置在/temp
中;您可能需要通过configure
的--sysconfdir=/etc
和--localstatedir=/var
选项更改这些默认目录。
注意:configure
的 --with-baseurl
参数虽然不是必须的,但强烈建议您设置此选项,因为它允许您通过预设的 URL 来构建提交客户端(submit client
)和队伍手册;单当您使用 OpenID 的时候,该选项是必须的; 如果有需要,稍后可以在 domserver 上的 etc/domserver-static.php
和源码中的 etc/submit-config.h
中更新该设置以重建提交客户端。
运行过 configure
后就可以开始编译安装系统了;domserver
、judgehost
和 docs
都可以单独安,例如:
注意:root 权限是必须的,它用来设置密码文件和一些目录的权限和用户和用户组的所有权;如果您非 root 权限执行,程序将发出警告,您必须手动执行这些操作;虽然 Domjudge 的安装需要 root 权限,但您不应该在 root 用户下运行 Domjudge 程序和守护进程:因为 runguard
是唯一需要 root 权限的部分(通过 sudo
获取权限);此外,以 root 权限运行还会产生一些问题,参见常见问题章节 runguard:root 权不失。
关于 make 的目标(make target
)列表,在源码根目录不带参数执行 make
查看。
Last updated