/contest-iso

Custom OS for Programming Contests

Primary LanguageShellGNU General Public License v3.0GPL-3.0

Custom OS for Programming Contests

This repository contains recipe to customize the Ubuntu 22.04 Jammy Jellyfish desktop image for an on-site programming contest.

Tests

Installation

You can go two ways about this:

  1. Prepare a custom ISO that can re-distributed.
  2. Customize an existing installation.

Prepare custom ISO with Cubic

You can choose to create a customized ISO which can then be simply installed in each machine. To do that, follow these simple steps:

  1. Download a Ubuntu 22.04 desktop image. Find download options here.
  2. Launch Cubic, configure and find your way to the console in the chroot environment. Learn how to use Cubic.
  3. Copy/clone the repository files in the /root directory. Make sure to customize options (user accounts etc.) in vars.sh.
  4. Run the install.sh script as root. It should run non-interactive.
  5. Proceed with Cubic options, compress and generate the iso.

The ISO can now be re-distributed and installed on machines independently.

Customize an existing installation

If you have Ubuntu 22.04 installed on a machine, you can simply run the scripts on the OS to customize your instance. The following steps should do the trick:

  1. Copy/clone the repository files. Make sure to customize options (user accounts etc.) in vars.sh.
  2. Run the install.sh script as root. It should run non-interactive.

What's inside?

The scripts install the following utilities:

  • Compilers
    • GCC
    • G++
    • Python3
    • Java
  • Editors
    • Vim
    • Emacs
    • Nano
    • Sublime text
    • VS Code
    • Gedit
  • IDEs
    • Code::Blocks
    • Geany
    • PyCharm
    • Intellij IDEA

Three user accounts are also created:

  • admin (for administrative usage, has sudo rights)
  • main (for the on-site main contest)
  • mock (for the mock contest)

There are also some pre-loaded configurations located in the dots directory.

Contributing

Pull Requests are welcome!

License

See LICENSE.

TODO

  • Trim down the image. The generated iso is about 6.5G now. Maybe extend the trim.sh script?
  • See if the process of creating ISO (with cubic) can be automated. See context.