install mooshak on a fresh debian etch server
Mooshak is a system for managing programming contests on the Web. Mooshak’s basic features include automatic judging of submitted programs, answering to clarification questions about problem descriptions, reevaluation of programs, tracking printouts, among many others [reference: Mooshak’s website].
Since I want to have a dedicated server for it (thanks, Algardata), I had the oportunity to install on a fresh debian etch system. Unfortunately, the installation manual is very incomplete (even the README file bundled with it), so I created this small step-by-step tutorial what will help you to install it flawless.
Warning: This rough tutorial was the solution to install mooshak only. Mooshak configuration, setting users, competitions, etc, is far from the scope of this tutorial.
1 – Requeriments:
For this tutorial I used a debian etch 4.0r3 network install CD and I installed the basic system and nothing more.
Mooshak needs the following software to work:
- Tcl 8.3 or greater;
- Apache 1.2 or greater;
Well, in my case I need a little more, because this is a very basic system. To be able to install Mooshak, it’s needed to install:
- xsltproc (version: 1.1.19)
- lpr (version: 2006.11.04)
- rsync (version: 2.6.9)
- gcc (version: 4.1.1)
- libxm2-utils (version: 2.6.27)
The version number next to each package it’s the one that I’ve installed. It doesn’t mean that it can’t work with a minor version, but I don’t have that knowledge.
2 – Requirements installation:
To install it all at once:
aptitude install tcl apache2 xsltproc lpr rsync gcc libxml2-utils
This command line worked fine for me. I just recommend to see which extra packages it would install, but they are safe and expected.
3 – Mooshak installation
Now our box is ready to install Mooshak. Just download the lastest stable version and install it:
% tar xzf mooshak-version.tgz % cd mooshak-version % su # ./install Prerequisites Ok. Installing Mooshak on debian, Apache 2.2 home dir created data.tgz copied source.tgz copied setting file permissions ... done connecting to host [your-server's-name] ... connected! Mooshak installation seems OK
You can check it from the webserver http://%5Byour-server’s-name%5D/~mooshak/cgi-bin/info
4 – Configuring Apache2
Since mooshak site it’s from a system user (mooshak), you will need to activate userdir module:
# a2enmod userdir
Next step is to configure /etc/apache2/mods-available/user-dir.conf and add the following lines between IfModule section:
<Directory /home/*/public_html/cgi-bin> Options +ExecCGI -Includes -Indexes SetHandler cgi-script </Directory>
Now, it’s time to reload the apache2 server:
Mooshak have big lacks of documentation and it’s build in TCL, which it doesn’t help to be widely adopted. Meanwhile, it’s quite popular among portuguese universities because of programming contests, or even it’s used in programming classes to test students.
I would like to see a mooshak version using a more popular language (PHP, Ruby, JAVA, etc.).
Finally, I invite everyone to help me to keep this tutorial up-to-date.