CodeRunner Documentation (V2.4.2)
2.2 Installing CodeRunner from scratch
Note: if you're installing CodeRunner on an SELinux system and you wish to use the deprecated RunguardSandbox you will probably need to disable SELinux. This can be done with a command like
sed -i-dist -e 's|SELINUX=enforcing|SELINUX=permissive|' /etc/selinux/config setenforce 0
There are three different ways to install CodeRunner, as follows:
Download the latest version of CodeRunner and extract the files
qbehaviour_coderunner.zip. Unzip these into the directories
moodlehome/question/behaviourrespectively. This installation method does not support the use of the RunGuard sandbox (see below). It can be used on any Linux, Windows or Mac.
Clone the entire repository into any directory you like, say
somewhereand then copy the type/coderunner and behaviour/adaptive_adapted_for_coderunner subtrees into the Moodle question/type and question/behaviour directories. The commands to achieve this under Linux are
cd somewhere git clone https://github.com/trampgeek/CodeRunner.git cd CodeRunner sudo ./install
Clone the entire repository into the
moodlehome/localdirectory and then make symbolic links from Moodle's question/type and question/behaviour directories into the corresponding CodeRunner subtrees. The commands to achieve this on a Linux system are
cd moodlehome/local git clone https://github.com/trampgeek/CodeRunner.git cd CodeRunner sudo ./devinstall
The first of these methods is the more traditional Moodle install, while the
second is equivalent in effect but makes it possible to also install the
RunGuard sandbox (provided you're running a Linux-based Moodle)
and gives you the full CodeRunner source
tree to experiment with. The third method, which also allows
use of the RunGuard sandbox (on Linux systems only), is intended for developers.
it symbolically links to the source code, any changes made to the source in
moodlehome/local/CodeRunner subtree will take immediate effect.
Having carried out one of the above methods,
if you have local question prototypes to add to the built-in prototype set you
copy them into the
They should be
Moodle XML file(s) with names ending in
[If you don't understand what this paragraph means, then it probably
doesn't concern you ... move on.]
After carrying out one of the above install methods, you can complete the installation by logging onto the server through the web interface as an administrator and following the prompts to upgrade the database as appropriate. Do not interrupt that upgrade process. If you are upgrading from an earlier version of CodeRunner you will likely receive quite a few warning messages from the cachestore, relating to files that have been moved or renamed in the transition from version 2.3. These warnings can be safely ignored (I hope).
In its initial configuration, CodeRunner is set to use a University of Canterbury Jobe server to run jobs. You are welcome to use this during initial testing, but it is not intended for production use. Authentication and authorisation on that server is via an API-key and the default API-key given with CodeRunner imposes a limit of 100 per hour over all clients using that key. If you decide that CodeRunner is useful to you, please set up your own sandbox (Jobe or otherwise) as described in Sandbox configuration below. Alternatively, if you wish to continue to use our Jobe server, you can apply to the developer for your own API key, stating how long you will need to use the key and a reasonable upper bound on the number of jobs you will need to submit her hour. We will do our best to accommodate you if we have sufficient capacity.
If you want a few CodeRunner questions to get started with, try importing the
all the questions from the two tutorial quizzes on the
demo site. Note, though, that some of the
questions from the
python3demoquestions file make use of the University of
Canterbury prototypes in uoc_prototypes.xml, so you'd need to import them, too.
WARNING: at least a couple of users have broken CodeRunner by duplicating
the prototype questions in the System/CR_PROTOTYPES category.
Do not touch
those special questions until you have read this entire manual and
are familiar with the inner workings of CodeRunner. Even then, you should
proceed with caution. These prototypes are not
for normal use - they are akin to base classes in a prototypal inheritance
type will become unusable, as CodeRunner doesn't know which version of the
prototype to use.