[racket] Serving multiple, read-only Racket versions?

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Mon Oct 24 13:05:39 EDT 2011

Jukka Tuominen wrote at 10/24/2011 12:06 PM:
> I wonder if it's possible to place multiple, read-only Racket versions on a
> server and have users executing them directly without needing to install
> them individually? I think this is possible, but I'd like to know for sure
> that it won't cause any unexpected problems.

Yes, I have been doing this for years, including on production servers, 
by building with the "--prefix" argument to "configure".  For example, 
on this laptop, at the moment, I have:

ls -ld /usr/local/racket-*
drwxr-sr-x 6 root staff 4096 Sep 29 08:55 /usr/local/racket-5.1.2
drwxr-sr-x 6 root staff 4096 Sep 25 06:21 /usr/local/racket-5.1.3
drwxr-sr-x 6 root staff 4096 Sep 26 18:32 /usr/local/racket-
drwxr-sr-x 6 root staff 4096 Oct 10 23:56 /usr/local/racket-

(Eli has a somewhat different way of accomplishing this same thing; you 
might prefer to search the mail archive for his way.  This has come up 
multiple times before.)

> Does this sound feasible? I understand that initial PLaneT libraries may
> take time to download and are placed into home directory (version handled?).

My understanding is... Yes, the PLaneT libraries are installed in the 
user's home directory.  Each such PLaneT package's installation is 
specific to the Racket version by which it was installed, and multiple 
such versions can be installed simultaneously.  Note that these Racket 
version numbers are the official Racket version numbers, not any other 
version number you might use in directory names in "/usr/local".

> One possible threat is to manipulate source code with a newer program
> version and make it inaccessible thereafter for the older versions?

You will have to look closely at security.  Depending on the nature of 
your system, the current version of PLaneT might not be secure enough 
as-is.  If it's not secure enough, but you still desire to use it in 
some way, you could layer your own security atop it.  You could also 
talk with PLT people and me about how the next big version of PLaneT 
could address the specific issues you see.


Posted on the users mailing list.