[Haskell-cafe] Haskell-friendly Linux Distribution

Chris Dornan chris at chrisdornan.com
Sun Mar 28 13:47:55 EDT 2010


Thanks everyone,

Your observations have been most valuable but Mathijs' advice was excellent.

You may well want to pick a distribution that supports Haskell in choosing a distribution for general work but for a serious project you in effect build your own Haskell distribution and choose the Linux distribution that matches the destination ecosystem--in my case CentOS. This has nothing at all to do with my own preferences but the fact that CentOS is already being used in the target system (comprising multiple Linux systems).

Thanks again,

Chris

-----Original Message-----
From: haskell-cafe-bounces at haskell.org [mailto:haskell-cafe-bounces at haskell.org] On Behalf Of Mathijs Kwik
Sent: 28 March 2010 5:13 AM
To: haskell-cafe at haskell.org
Subject: Re: [Haskell-cafe] Haskell-friendly Linux Distribution

As a developer in 3 languages (ruby & java professionally, haskell as
hobby) I must say I really prefer just managing this manually, separate from the package manager.

I'm running ubuntu LTS (8.04) on production servers.
I don't want to upgrade a server OS every 6 months, so I really like the more conservative LTS approach that ubuntu took.
But this would mean that an environment for a language would also be somewhat frozen for at least 2 years, which isn't very useful. When
10.04 gets out with ghc 6.12.1, it will still mean that's the only thing available until 2012, or I need to upgrade the entire OS every 6 months.

Developers prefer newer versions of ubuntu on their machines, or another distro (or use a mac).
To get stuff working the same on all machines, it's really just the easiest just to use manual installation.

I just keep stuff in /opt
/opt/ghc-6.10.4
/opt/ghc-6.12.1
/opt/java6
/opt/jruby-1.4
/opt/ruby-1.9
/opt/ruby-enterprise-1.8.6
/opt/ruby-enterprise-1.8.7

This has a lot of advantages:
- I don't have to wait for certain updated packages (for libs or compiler / interpreter stuff).
- I can keep multiple versions of a language around and just switch by changing PATH (for which I have aliases/helpers).
This opens up possibilities to keep "legacy" code running (I mean upgrading to ubuntu 10.04 will mean breaking any apps that aren't fully 6.12 compatible yet), and allows somewhat more "experimental"
projects to use latests-and-greatest (or even beta) versions of an environment.

- no problems mixing package-manager installed libs with manually installed stuff I saw this has improved a bit for ruby/haskell quite a bit, now allowing installation of manually installed libs to a user home-dir.
But I prefer not splitting my packages over multiple locations, so just keeping them in 1 place manually.

This means that (when building/installing stuff) I have to install some packages like gcc/binutils and some -dev (header) packages when I need to bind to native code (I can uninstall them afterwards).

For getting an environment up&running I just have some bash-scripts which install needed (package-manager) packages, download the sources I need and install stuff to /opt, and clean up afterwards.
It's easy to keep those scripts portable between distributions/versions/architectures.
This way, developers can run any distro they like, and I can keep using the more conservative LTS release on production.


For production machines (that all have same OS and architecture) I build everything on 1 machine and have others just sync the /opt stuff if needed.

This might not be a solution for you, it really depends on your needs, but for me, I found it's often useful to control the exact environment an application needs and it gives developers the freedom to run whatever OS they like, which is a huge benefit if you use contractors or if devs want to work from home.




On Sun, Mar 28, 2010 at 5:11 AM, Chris Dornan <chris at chrisdornan.com> wrote:
> Hi,
>
>
>
> I am choosing a Linux distribution for a production Haskell project 
> and would would normally just go with Debian (pedigree, stability, and 
> of course Haskell Platfom included) but CentOS is in the frame.
>
>
>
> Are there any particularly strong reasons for preferring or avoiding 
> any particular distribution?
>
>
>
> Chris
>
>
>
> -------------------------------
>
> Chris Dornan
>
> email : chris at chrisdornan.com
>
> tel   : +1 (847) 691 7945
>
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe at haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe



More information about the Haskell-Cafe mailing list