Skip to content
Official upstream development repository for Cabal and cabal-install
Haskell Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Cabal home page:

WARNING If you already have Cabal installed, and are using GHC 6.4.1
or earlier, read "Working with older versions of Cabal" for
information first!  If you do this out of order, stuff might get
screwy.  If stuff gets screwy, post to for help.

-= Installing as root / Administrator (GHC's global package file) =-

This is the recommended method of installing Cabal.

run "make install" as root

The Makefile wraps the standard Cabal setup script; the
Makefile is a convinience for bootstrapping the system. "sudo
make install" should generate the setup script, configure, build,
install, and register it in a standard location.

Cabal should build just like any other Cabal-ized packagem, so if you
you can't or don't want to use the Makefile, you can run:
ghc -i. --make Setup.hs -o setup
./setup configure
./setup build
sudo ./setup install

-= Installing as a user (no root or administer access) =-

ghc -i. --make Setup.lhs -o setup
./setup configure --prefix=$HOME --user
./setup build
./setup install

Additional notes for GHC-6.4.1 and older:


1) Cabal is installed in the global package file (use ghc-pkg list to see)

2) You don't have root access

3) You need to install a newer version of Cabal in your user directory, 

then this formula may help to hide the global version:

  $ ghc-pkg describe Cabal-1.0 | ghc-pkg --user register -
  $ ghc-pkg --user hide Cabal-1.0

-= Working with older versions of GHC and Cabal =-

If you have GHC 6.4.2 or later then it's recommended just to leave the
old version of Cabal installed (unless you are really sure that no
existing packages still needs it).

Prior to GHC 6.4.2 however, GHC didn't deal particularly well with
having multiple versions of packages installed at once. So if you are
using GHC 6.4.1 or older and you have an older version of Cabal
installed, you probably just want to remove it:

  $ ghc-pkg unregister Cabal

or if you had Cabal installed just for your user account then:

  $ ghc-pkg unregister Cabal --user

-= Your Help =-

Portability is one of the most important things about this project.
We don't expect the early releases to work on every system, but it
should work on YOUR system!  If it doesn't please help us figure out
why, and write a patch and test case to fix the problem, if you can!
The codebase is a very manageable size.

-= Code =-

You can get the code from the web page; the version control system we
use is very open and welcoming to new developers.

darcs get --partial

-= Credits (in alphabetical order) =-

Cabal Coders:
- Krasimir Angelov
- Bjorn Bringert
- Duncan Coutts
- Isaac Jones
- David Himmelstrup (Lemmih)
- Simon Marlow
- Ross Patterson
- Thomas Schilling
- Martin Sjögren
- Malcolm Wallace (via hmake)

- and nearly 30 other people have contributed occasional patches

Cabal spec:
- Isaac Jones
- Simon Marlow
- Ross Patterson
- Simon Peyton Jones
- Malcolm Wallace
Something went wrong with that request. Please try again.