trampgeek / jobe

jobe is a server that runs small programming jobs in a variety of programming languages
MIT License
111 stars 80 forks source link

Dependencies problem #4

Closed Fedor-Lyanguzov closed 9 years ago

Fedor-Lyanguzov commented 9 years ago

Hello, Richard.

Thank you for your great work. I am constructing a test system for my school and encountered some problems.

There is at least 2 problems with installing Jobe: 1) libapache2-mod-auth-mysql package is missing in Debian 8 Jessie (stable). Apache2 had changed API or something, so all modules should be rebuilt considering changes. Unfortunately, this one is not built yet. Solution is to use oldstable Debian 7.8 Wheezy. I am trying this right now. 2) nodejs is not in Debian repos, it should be installed manually with

apt-get install curl
curl --silent --location https://deb.nodesource.com/setup_0.12 | bash -
apt-get install --yes nodejs

When i am done with installing, i will try to add Pascal prototype question to CodeRunner (this looks pretty simple), and Pascal support to Jobe (not so easy). Would you like to see this features merged to your repository?

Sincerely yours, Fedor.

trampgeek commented 9 years ago

Hi Fedor

Many thanks for taking the time to report your problems. Always much appreciated.

I've perhaps slightly misled you in the install instructions with the sentence "On Debian-based systems, a script to set up all the necessary web tools plus all currently-supported languages is something like the following." Even within Debian-based distributions there are many variations and there's no single script that will work on all of them. I believe my script (if I can call two commands a script!) works with Ubuntu 14:04 and Mint 16. I'll check that's still the case and change the documentation to specify which distribution I used.

Defining a Pascal prototype question in CodeRunner and providing Pascal support in Jobe should both be fairly straightfoward; I'm happy to help if necessary. Certainly I'd be pleased to merge these back into my repositories. Many thanks.

For what it's worth, once you have a language installed on the Jobe server itself you can use it in CodeRunner questions even without having an explicit Jobe task for the language or even a special CodeRunner prototype. You can just use a customised Python question with a template that writes the student's code to a file and then compiles and executes that file using functions in the subprocess module. In such cases you set the sandbox language to Python but the Ace language to that of the student's code. This approach is convenient for little-used languages but we also sometimes use it for languages that are fully supported in Jobe in order to simplify pre-processing of a student's code, e.g. checking style or verifying the student is using certain required programming constructs.

Good luck with installing Pascal.

Richard