Provided by: ghc_8.4.4+dfsg1-2_amd64 bug


       ghc-pkg - GHC Haskell Cabal package manager


       ghc-pkg action [OPTION]...


       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.


       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.

              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
              manyally.   By  default,  the  global DB is recached; to recache a different DB use
              --user or --package-conf as appropriate.


       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.

              Use the global package database.

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

              Location of the global package config.

              Ignore missing dependencies, directories, and libraries.

              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.

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

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

              Ignore case for substring matching.


              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.


       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.

              Global package.conf file.

              Directory for library specific package.conf files.  These are added to  the  global


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


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

                                            2010-01-27                                 ghc-pkg(1)