3.3 安装评测系统

还有一份专门为开发者准备的维护者安装方法,请参考附录:开发者信息,并跳过本节其余内容。

Domjudge 的构建/安装系统包括一个 configure 脚本和 makefiles,但是安装的时候,您必须更加小心,而不是仅仅执行 ./configure && make && make install。 Domjudge 需要同时安装在服务器和 judgehost 上,这就要求整个系统可以被部分安装;在安装系统中,这些部分分别是:domserverjudgehostdocs(文档)

domjudge 可以安装成两种不同的目录结构:

单目录树 (Single directory tree)

使用此方法,所有和 Domjudge 相关的文件和程序都将安装在同一个目录树中,该目录树的前缀由 configureprefix 选项指定,例如:

./configure --prefix=$HOME/domjudge --with-baseurl=https://domjudge.example.com/

这将会给 domservejudgehostdocs$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/domjudgePREFIX/binPREFIX/var/logPREFIX/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 后就可以开始编译安装系统了;domserverjudgehostdocs 都可以单独安,例如:

make domserver && sudo make install-domserver
make judgehost && sudo make install-judgehost
make docs && sudo make install-docs

注意:root 权限是必须的,它用来设置密码文件和一些目录的权限和用户和用户组的所有权;如果您 root 权限执行,程序将发出警告,您必须手动执行这些操作;虽然 Domjudge 的安装需要 root 权限,但您应该在 root 用户下运行 Domjudge 程序和守护进程:因为 runguard 是唯一需要 root 权限的部分(通过 sudo 获取权限);此外,以 root 权限运行还会产生一些问题,参见常见问题章节 runguard:root 权不失

关于 make 的目标(make target)列表,在源码根目录不带参数执行 make 查看。

Last updated