DOMjudge 中文文档
  • 概述
  • 术语对照表
  • 管理员手册
    • 1 Domjudge 总体介绍
      • 1.1 功能
      • 1.2 环境依赖
      • 1.3 版权许可
      • 1.4 联系方式
    • 2 比赛安排
      • 2.1 比赛硬件
      • 2.2 环境依赖
    • 3 安装与配置
      • 3.1 快速安装
      • 3.2 准备工作
      • 3.3 安装评测系统
      • 3.4 安装数据库
      • 3.5 Web 服务器配置
      • 3.6 微调服务器的设置
      • 3.7 安装 judgehost
      • 3.8 构建和安装 submit client
      • 3.9 配置
      • 3.10 OpenID connect
      • 3.11 可执行文件
      • 3.12 语言设置
      • 3.13 设置特殊运行和比较程序
      • 3.14 通知系统
      • 3.15 其他可配置脚本
      • 3.16 日志和调试
      • 3.17 (重新)生成文档和团队手册
      • 3.18 可选功能
      • 3.19 更新
    • 4 配置一场比赛
      • 4.1 配置比赛数据
      • 4.2 比赛里程碑
      • 4.3 用户验证
      • 4.4 提供测试数据
      • 4.5 开启守护进程
      • 4.6 检查确保一切就绪
      • 4.7 测试裁判解(jury solutions)
    • 5 队伍环境
    • 6 网页界面
      • 6.1 裁判及管理员视图
      • 6.2 得分榜
      • 6.3 气球
    • 7 安全性
      • 7.1 考量
      • 7.2 内部安全
      • 7.3 root 权限
      • 7.4 文件系统权限
      • 7.5 外部安全
    • 附录
      • 8 常见问题和解决方案
        • 8.5 Memory limit errors in the web interface
        • 8.6 Compiler errors: `runguard: root privileges not dropped'
      • 9 多站比赛
      • 10 致开发者
        • 10.1 从 Git 源码库引导
        • 10.2 维护模式安装
        • 10.3 Makefile 结构
  • 裁判手册
    • 1 Domjudge 总体介绍
      • 1.1 功能
      • 1.2 版权许可
      • 1.3 联系方式
    • 2 概要
      • 2.1 裁判与管理员
      • 2.2 榜单
    • 3 比赛前
      • 3.1 题目及语言
      • 3.2 核对测试数据
      • 3.3 测试题解
      • 3.4 热身赛
    • 4 比赛期间
      • 4.1 监测队伍状态
      • 4.2 评测提交
      • 4.3 解释请求
    • 5 比赛后
    • 附录
      • 6 题目打包格式
  • 队员手册
    • 0 概要
    • 1 提交题解
      • 1.1 通过命令行
      • 1.2 通过网页界面
    • 2 查看提交结果
      • 2.1 可能的结果
    • 3 解释
    • 4 提交是怎么被评测的?
      • 4.1 提交题解
      • 4.2 编译
      • 4.3 测试
      • 4.4 各种限制
    • 附录
      • A 样例代码
Powered by GitBook
On this page
  • 系统依赖
  • 软件依赖
  • 队伍设备的配置要求

Was this helpful?

  1. 管理员手册
  2. 2 比赛安排

2.2 环境依赖

Previous2.1 比赛硬件Next3 安装与配置

Last updated 6 years ago

Was this helpful?

系统依赖

部署 DOMjudge 的依赖有:

  • 运行 judgehosts 和 DOMserver 的计算机必须运行 Linux(DOMserver 或许可以运行在一台 Unix 的变种上)。这套系统主要在 Debian GNU/Linux 下开发,手册中页添加了一些特别提示项,对 Debian 的派生系统如 Ubuntu 也有效。DOMjudge 也在类 RedHat Linux 系统下测试过。我们尝试遵循 POSIX 标准,但是唯独是 judgehost 的安全解决方案是 Linux 专属的。

  • DOMserver 和 judgehost 的(本地)root 权限,用于配置 sudo ,安装有限制性权限的文件,以及挂载(卸载) proc 文件系统。详情查阅。

  • 一个连接所有 DOMjudge 参赛队伍计算机的 TCP/IP 网络。另外需要限制因特网访问或其他服务(如 ssh,邮件,网络聊天 等)功能的安全服务,本软件并不提供。详情参见。所有基于网络的交互都由 HTTP 或 HTTPS 协议( TCP 端口 80 或 433)完成:

    • 向web服务器发送的来自于队伍,公众或裁判的 HTTP 流量。

    • 评测机通过 HTTP(S) 连接到web服务器上的 DOMjudge 的 API。

    • 命令行提交客户端(submit)也通过 HTTP(S) 连接到 web 服务器上的 API。

      当使用“IP地址”认证模式时,每个队伍的计算机需要有一个 DOMjudge 服务器能确定唯一的IP地址,详细请见

软件依赖

DOMjudge 运行时需要以下软件支持:

  • 对每一种支持的语言都需要有一个对应的编译器,最好是可以产生静态链接的独立可执行文件那种。

  • 带 PHP FPM 的 Nginx web服务器或支持 mod_rewirte 的 Apache 服务器

  • 无论是使用 FPM 或 Apache 的 mod_php, PHP >= 7.0。并且启用 mysqli, GD, curl, json, mbstring, intl, zip 以及 PHP 的 XML 拓展。我们也推荐用于产生额外调试信息的 posix 拓展。

  • MySQL 或 MariaDB >= 5.5.3 数据库,以及客户端软件。

  • PHP >= 7.0 命令行版本以及 curl 和 json 拓展。

  • 在 /bin/sh(例如 bash 或 ash)中的 POSIX 的兼容 shell。

  • 一个静态编译的 POSIX shell,位于lib/judge/sh-static(i386/amd64 Linux 中包含 dash)。

  • ,用于启用 Linux cgroup 审计和 judgehost 上的安全措施,参见 章节。

  • 许多标准的( GNU )程序,包括但不限于:hostname, date, dirname, basename, touch, chmod, cp, mv, cat, grep, diff, wc, mkdir, mkfifo, mount, sleep, head, tail, pgrep, zip, unzip。

  • 用于获得 root 权限的 sudo。

  • 用于重新产生含有专属网站配置设置的队伍 PDF 手册的 LaTeX。

以下配置是可选的,但是它们通常是有用的或者对某些功能来说是必须的:

  • NTP 守护进程,用于保持裁判系统、队伍设备的时间一致

编译 DOMjudge 依赖的软件:

  • 包含标准库的 gcc 以及 g++;其他的库也可能有效:我们曾成功地用 LLVM 工程的 Clang 完全编译了 DOMjudge 的源文件;C 库应支持 POSIX.1-2008 标准。

  • GNU make

队伍设备的配置要求

最基本的队伍主机只需要一个现代 web 浏览器(当然还应有必要的程序编写工具),DOMjudge 支持所有版本的 Firefox,Chrome,Edge。

,用于紧急情况下访问数据库或导入导出数据

和 ,用于命令行提交客户端

用于命令行提交客户端探测二进制提交文件

用于可靠地对提交文件进行比较,如果没有安装那么 DOMjudge 会尝试其他方法比较提交文件

用于使用默认的 alert 脚本时,对错误、提交和评测发出可听见的通知

安全性:root 权限
安全:外部安全
验证行为
libcgroup
安装 judgehost
phpMyAdmin
libcurl
libJSONcpp
libmagic
PECL xdiff 扩展
beep