Readme for cabal-install-0.4.0
== 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
install.
== Developer docs ==
CabalInstall, what happens under the hood.
FetchCmd:
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.
CleanCmd:
Removes all fetched packages.
UpdateCmd:
Queries all known servers for their packages and stores it in [cfg-dir]/pkg.list.
InstallCmd:
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.
InfoCmd:
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.