[racket] Racket on Centos?

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Sat Jan 17 18:59:23 EST 2015

George Neuner wrote on 01/17/2015 04:58 PM:
>
> On 1/17/2015 1:26 AM, Neil Van Dyke wrote:
>> Finally, cross your fingers, and test it on target VM.
>
> It's the "cross you fingers" part that worries me.  I'd be happier if 
> I knew others already had done it successfully.  I've never worked 
> with CentOS and it's been a long while since Redhat.  I work with 
> Ubuntu and occasionally with SUSE.  Very different admin environments.
>

Two more important things I forgot to mention last night:

* Being CentOS, your target VM might require SELinux labeling.  If so, 
you *might* want to figure that out on your build machine rather than on 
the target VM.

* You might need make sure Linux address space layout randomization is 
not enabled, or face bizarre intermittent failures of your app. (This is 
a general OS issue for some GC'd language runtimes, and might still be 
with Racket, regardless of how Racket is built and packaged.)

Other than those two, if it's done the way I said, and the initial test 
on the target VM is good, that's a reasonable approach, and you're 
probably golden.  (The alternative to copying install tree from a 
mimicing system would be to make a good CentOS package, including 
getting the version dependencies proper in face of future automatic 
security updates and such, but that alternative might be significantly 
more learning and work.  You don't want a poorly-done CentOS package, 
regardless of whether you or someone else made it. But if this is a 
small intranet app or similar, client might not want to invest in making 
sure they have a good CentOS package, rather than just having a solid 
way of copying over a normal install tree from mimic system.)

RHEL (CentOS) is the most solid enterprise server distro, so no worries 
there.  It's just (last time I looked) more intimidating than other 
popular distros, if you just want to do a naive, one-off install.

> My problem is  the client's provider: they will give me any Linux I 
> want but they only provide management services for CentOS.

(Just noting this in general for the email list...)  Since client has 
people who maintain the CentOS VMs, depending on how much control they 
exercise, and how much they want to know or be responsible for, it might 
be a courtesy/obligation to touch bases with sys-admins on what you're 
doing.  They also might be able to help you out (e.g., they make sure 
that the CentOS library packages you need are installed, make sure that 
things like address space randomization won't get turned on later, 
inform you of any VM provisioning considerations, etc.), and they might 
have requests (e.g., provide SELinux labeling, don't copy libraries into 
standard directories, put Racket somewhere other than /usr/local/, don't 
store your persistent data on a particular filesystem, etc.). Sys-admin 
is often misunderstood and under-appreciated, but the quality of its 
decisions and practices can have a huge impact on the success of your 
project/organization, similar to the quality of the software 
developers.  (Also, touching base might tell you whether the sys-admin 
is actually more a reactive-only type, which info might affect how you 
advise client on how to manage an important app's hosting.)

Neil V.


Posted on the users mailing list.