cabal-install: Automatic package handling for Haskell

[ bsd3, distribution, library, program ] [ Propose Tags ]

apt-get like tool for Haskell. The 'cabal' command-line program simplifies the process of managing Haskell software by automating the fetching, configuration, compilation and installation of Haskell libraries and programs.

[Skip to Readme]


Automatic Flags

Old, monolithic base


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Versions [RSS] 0.4.0, 0.5.0, 0.5.1, 0.5.2, 0.6.0, 0.6.2, 0.6.4, 0.8.0, 0.8.2, 0.10.0, 0.10.2, 0.14.0, 0.14.1, 1.16.0,,,, 1.18.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Dependencies base (<2.2 || >=3.0), bytestring (>=0.9), Cabal (>=1.2), directory, filepath (>=1.0), HTTP (>=3000.0 && <3001.1), network, pretty, process, zlib (>=0.3) [details]
License BSD-3-Clause
Copyright 2005 Lemmih <>, 2006 Paolo Martini <>
Author Lemmih <>, Paolo Martini <>
Category Distribution
Uploaded by DuncanCoutts at 2007-10-21T17:53:57Z
Distributions Arch:, Debian:, Fedora:, FreeBSD:, LTSHaskell:, NixOS:, Stackage:, openSUSE:
Reverse Dependencies 4 direct, 0 indirect [details]
Executables cabal
Downloads 257755 total (366 in the last 30 days)
Rating 2.5 (votes: 11) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2017-01-04 [all 9 reports]

Readme for cabal-install-0.4.0

[back to package description]
== cabal install ==

The automatic package manager for Haskell!

Intended usage:

    cabal install xmonad

Just works. Defaults make sense, and by default we don't fail unless it
is unrecoverable.

== Dependences ==

   base >= 2.1, process, directory, pretty, bytestring >= 0.9
   mtl, network, regex-compat, unix, Cabal>=1.3,
   zlib >= 0.4, HTTP >= 3000.0 && < 3000.1, filepath >= 1.0

Kind of ironic we need cabal install to make it easier to build cabal

== Developer docs ==

    CabalInstall, what happens under the hood.

    cabal-install stores packages in [config-dir]/packages/ by their package id.
    This can lead to clashes if there's two identical (same name, same version)
    packages from two servers with different functionality.
    Removes all fetched packages.
    Queries all known servers for their packages and stores it in [cfg-dir]/pkg.list.
    Installed packages are determined, and dependencies of the to-be-installed packages
    are resolved and fetched.
    The fetched tarballs are moved to a temporary directory (usually /tmp) and extracted.
    Distribution.Simple.SetupWrapper is used to configure, build and install the
    unpacked package. The user can
    only pass arguments to the 'configure' phase of the installation. '--user' is used
    by default.
    To be written.

  Files used by cabal-install:
    [cfg-dir]/config        configuration file
    [cfg-dir]/00-index.tar         list of packages available from the servers.
    [cfg-dir]/packages/        directory containing all fetched packages.