Revision as of 21:40, 29 October 2011

There's an interesting Haskell package on Hackage you'd like to try. How do you install it on your system?

1 Installing packages using cabal

By far the easiest way is to use the cabal command line tool to install a new package and its dependencies. cabal is part of the Haskell Platform, so make sure you install that first. The Cabal-Install page explains how to use cabal.

If you so wish, you can still install packages manually -- see the section below.

2 Installing packages manually

First, ensure that all the packages it depends on are installed (by following these instructions recursively).

In order to install a package globally, perform the following commands (see the Cabal documentation for more details):

runhaskell Setup configure

runhaskell Setup build

On a Unix or Linux system:

sudo runhaskell Setup install

Windows (login with administrator rights):

runhaskell Setup install

2.1 Notes

If instead of installing globally, you just wish to install a package for your normal user account, you could instead use the following configure command, which would register the install in the user-specific database and install binaries and libraries in $HOME/bin, $HOME/lib, and so forth (Windows users replace $HOME with %home%):

runhaskell Setup configure --user --prefix=$HOME

(Note that in Cabal 1.4 onwards, you may omit the --prefix=$HOME, since --prefix=$HOME/.cabal is now implied by --user. Also note that you can omit sudo in the install statement if you use this method.)

You can get more information about any of these commands by adding --help after the command. For example, to see all the options available for the configure step, you could use the following command:

runhaskell Setup configure --help

If you encounter unsatisfied dependencies when you run the configure step, that is when you recurse and first install the missing package.

If you have more than one Haskell compiler on your system, use the --with-compiler option for the configure step. That will ensure that Cabal uses the correct compiler during the entire installation process. For example: