Skip to content
This repository

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 etc-cabal-install
Octocat-spinner-32 CabalInstall.hs
Octocat-spinner-32 INSTALL
Octocat-spinner-32 README
Octocat-spinner-32 Setup.lhs
Octocat-spinner-32 cabal-install.cabal
    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.
    Then cabal-install finds any files with a ".cabal" extension and picks the shortest (eg.
    "myPkg/pkg.cabal" will be chosen over "myPkg/subdir/somefile.cabal"). Cabal-get looks
    for "Setup.lhs" and "Setup.hs" (in that order) in the directory where the .cabal file
    was found. Runhaskell is then called with user specified arguments. The user can
    only pass arguments to the 'configure' phase of the installation. '--user' is only passed
    to 'runhaskell install' when the '--user' flag is given to cabal-install.
    To be written.

  Files used by cabal-install:
    [cfg-dir]/serv.list        list of servers in the format of :: [String]
    [cfg-dir]/pkg.list         list of packages available from the servers.
                               Format: [(ServerURL,[(PackageIdentifier,[Dependency])])] where ServerURL = String
    [cfg-dir]/packages/        directory containing all fetched packages.
Something went wrong with that request. Please try again.