/sandbox-rootfs

The sandbox rootfs for Lyrio's judge service

Primary LanguageShellThe UnlicenseUnlicense

Sandbox RootFS

This is the sandbox's rootfs used by lyrio-judge. It's based on Ubuntu 22.04 and contains compilers (and interpreters) below:

  • GCC 12
  • Clang 14 (from LLVM)
  • OpenJDK 17
  • Kotlin (from SDKMAN!)
  • Free Pascal 3
  • Python 2.7
  • Python 3.9
  • Python 3.10
  • Swift (from Swift.org)
  • Rust (from Rustup)
  • Go (from PPA)
  • GHC 9.0.1 (from PPA)
  • C# (from Mono)
  • F# (from Mono)

Each compiler (or interpreter) is available in $PATH. It also contains testlib.h in /usr/include.

You can download it from release or bootstrap by yourself.

Bootstrapping

You'll need:

  • A Linux box with root privilege
  • arch-chroot (usually in the package arch-install-scripts)
  • debootstrap (some old version of Debian's debootstrap couldn't bootstrap Ubuntu 22.04)

First, clone this repo:

git clone git@github.com:lyrio-dev/sandbox-rootfs.git
cd sandbox-rootfs

Set the path to bootstrap rootfs. If there're anything inside it, it'll be rm -rf-ed. If the path doesn't exist, it'll be mkdir -p-ed.

export ROOTFS_PATH=/rootfs

If you're root, just run the bootstrap.sh script:

./bootstrap.sh

Or if you use sudo, remember to preserve the ROOTFS_PATH environment variable with -E option:

sudo -E ./bootstrap.sh