3.3 安装系统

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

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

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

  • 单目录树 (Single directory tree)

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

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

    这将会给 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 中更新该设置以重建 submit-client

运行 configure 后就可以开始编译安装系统了; domserver, judgehostdocs 都可以单独安, 例如:

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 privileges not dropped

关于 make 的目标(make target)列表, 请不带参数执行 make


results matching ""

    No results matching ""