Haskell Platform 2014.2.0.0: Linux installation

Travis Cardwell travis.cardwell at extellisys.com
Sun Aug 10 13:46:30 BST 2014


Dear Haskell Platform team,

Congratulations on the release!

I just installed from source (on Debian Wheezy) and have some feedback
that I would like to share.

1. I do not think that installing into /usr/local/haskell is good
organization because it mixes Filesystem Hierarchy Standard (FHS)
directories (bin, lib, share, etc.) with non-FHS directories (haskell in
this case, but go is another example).

I install local software into a /usr/local/opt directory, since such usage
is analogous to that of /opt (and reserve /opt itself for package-managed
content).  I wrote about this in more detail here:
http://www.extellisys.com/articles/usr-local-opt

One can always use the "--prefix" option when building from source, of course.

2. Until now, I have installed minimal Haskell installations into
directories named like /usr/local/opt/ghc-7.6.3 and Haskell Platform
installations into directories named like
/usr/local/opt/ghc-7.6.3-2013.2.0.0.  The new Haskell Platform build
system is hard-coded with the ghc-x.y.z-arch convention, however.

I can work with it by using that convention for my Haskell Platform
installations and a different one (such as ghc-x.y.z-arch-min) for my
minimal installations.  I think that it would be preferable, however, to
not force specific installation paths on users.

3. The activate-hs script creates symbolic links as well as registers
packages.  In my environments, I do not create symbolic links, which
alters the system environment.  I want Haskell software installed by the
package manager into /usr to use the packaged Haskell tools (which have
the necessary packages available), not my development installations (which
have minimal global packages since I use sandboxes), but /usr/local/bin is
[generally] before /usr/bin in the system PATH.

My Haskell development environments activate a development installation by
changing the PATH instead.  I think that this method is preferable because
it is environment specific: it only affects a single shell, and it does
not affect the system or other users.  The method also allows easy testing
software with many versions of GHC/HP without updating links.  This method
supersedes the symbolic links anyway, but perhaps the activate-hs script
encourages a bad practice.

Would it be a good idea to make the symbolic link creation optional?
Another option would be to let users link local packages themselves using
GNU Stow.  A benefit of using GNU Stow is that it supports unlinking,
allowing users to easily uninstall linked, local packages.


I recognize that my usage is not mainstream, but I am emailing in hope
that my feedback might be helpful anyway.

Thanks and best regards,

Travis



More information about the Haskell-platform mailing list