Provided by: ghc_9.4.7-3_amd64 bug

NAME

       ghc-pkg - GHC Haskell Cabal package manager

SYNOPSIS

       ghc-pkg action [OPTION]...

DESCRIPTION

       A  package  is  a  library  of  Haskell modules known to the compiler.  The ghc-pkg tool allows adding or
       removing them from a package database. By default, the system-wide  package  database  is  modified,  but
       alternatively the user's local package database or another specified file can be used.

       To  make  a  package  available for ghc, ghc-pkg can be used to register it.  Unregistering it removes it
       from the database.  Also, packages can be hidden, to make ghc ignore  the  package  by  default,  without
       uninstalling it.  Exposing a package makes a hidden package available.  Additionally, ghc-pkg has various
       commands to query the package database.

       Where  a  package  name  is required, the package can be named in full including the version number (e.g.
       network-1.0), or without the version number. Naming a package without  the  version  number  matches  all
       versions  of  the  package;  the specified action will be applied to all the matching packages. A package
       specifier that matches all version of the package can also be written pkg-*,  to  make  it  clearer  that
       multiple packages are being matched.

ACTIONS

       register filename|-
              Register the package using the specified installed package description.

       update filename|-
              Register the package, overwriting any other package with the same name.

       unregister pkg-id
              Unregister the specified package.

       expose pkg-id
              Expose the specified package.

       hide pkg-id
              Hide the specified package

       list [pkg]...
              List registered packages in the global database, and also the user database if --user is given. If
              a  package  name  is given all the registered versions will be listed in ascending order.  Accepts
              the --simple-output flag.

       dot    Generate a graph of the package dependencies in a form suitable for input for the graphviz  tools.
              For example, to generate a PDF of the dependency graph:
                  dot  tred  dot -Tpdf >pkgs.pdf

       find-module module
              List registered packages exposing module module in the global database, and also the user database
              if  --user  is  given. All the registered versions will be listed in ascending order.  Accepts the
              --simple-output flag.

       latest pkg-id
              Prints the highest registered version of a package.

       check  Check the consistency of package dependencies and list broken  packages.   Accepts  the  --simple-
              output flag.

       describe pkg
              Give  the  registered  description  for  the  specified  package.  The  description is returned in
              precisely the syntax required by ghc-pkg register.

       field pkg field
              Extract the specified field of the package description for the specified package.  Accepts  comma-
              separated multiple fields.

       dump   Dump  the registered description for every package. This is like ghc-pkg describe '*', expect that
              it is intended to be used by tools that parse the results, rather than humans.

       recache
              Regenerate the package database cache.  This command should only  be  necessary  if  you  added  a
              package  to the database by dropping a file into the database directory manually.  By default, the
              global DB is recached; to recache a different DB use --user or --package-conf as appropriate.

OPTIONS

       When asked to modify  a  database  (register, unregister, update, hide, expose, and also check),  ghc-pkg
       modifies  the  global  database  by default.  Specifying --user causes it to act on the user database, or
       --package-conf can be used to act on another database entirely. When multiple of these options are given,
       the rightmost one is used as the database to act upon.

       Commands that query the package database (list, latest, describe, field) operate on the list of databases
       specified by the flags --user, --global, and --package-conf.  If none  of  these  flags  are  given,  the
       default is --global --user.

       --user Use the current user's package database.

       --global
              Use the global package database.

       -f FILE, --package-conf=FILE
              Use the specified package config file.

       --global-conf=FILE
              Location of the global package config.

       --force
              Ignore missing dependencies, directories, and libraries.

       --force-files
              Ignore missing directories and libraries only.

       -g, --auto-ghc-libs
              Automatically build libs for GHCi (with register).

       -?, --help
              Display a help message and exit.

       -V, --version
              Output version information and exit.

       --simple-output
              Print output in easy-to-parse format for some commands.

       --names-only
              Only print package names, not versions; can only be used with list --simple-output.

       --ignore-case
              Ignore case for substring matching.

ENVIRONMENT VARIABLES

       GHC_PACKAGE_PATH
              The  GHC_PACKAGE_PATH  environment  variable  may be set to a :-separated list of files containing
              package databases. This list of package databases  is  used  by  ghc  and  ghc-pkg,  with  earlier
              databases  in  the list overriding later ones. This order was chosen to match the behaviour of the
              PATH environment variable; think of it as a list of package databases that are  searched  left-to-
              right for packages.

              If  GHC_PACKAGE_PATH  ends  in a separator, then the default user and system package databases are
              appended, in that order. e.g. to augment the usual set of packages with a database  of  your  own,
              you could say:

                   export GHC_PACKAGE_PATH=$HOME/.my-ghc-packages.conf:

              To  check  whether  your GHC_PACKAGE_PATH setting is doing the right thing, ghc-pkg list will list
              all the databases in use, in the reverse order they are searched.

FILES

       Both of these locations are changed for Debian.  Upstream still keeps these under  /usr.   Some  programs
       may refer to that, but look in /var instead.

       /var/lib/ghc/package.conf
              Global package.conf file.

       /var/lib/ghc/package.conf.d/
              Directory for library specific package.conf files.  These are added to the global registry.

SEE ALSO

       ghc(1), runghc(1), hugs(1).

AUTHOR

       This manual page was written by Kari Pahula <kaol@debian.org>, for the Debian project (and may be used by
       others).

                                                   2010-01-27                                         ghc-pkg(1)