neulab/tldr huggingface dataset:
--no-rs-codes Do not apply any reed-solomon codes when embedding core.img. This option is only available on x86 BIOS targets.
--product-version=STRING use STRING as product version
--recheck delete device map if it already exists
--removable the installation device is removable. This option is only available on EFI.
-s, --skip-fs-probe do not probe for filesystems in DEVICE
--target=TARGET install GRUB for TARGET platform [default=i386-pc]; available targets: arm-coreboot, arm-efi, arm-uboot, arm64-efi, i386-coreboot, i386-efi, i386-ieee1275, i386-multiboot, i386-pc, i386-qemu, i386-xen, i386-xen_pvh, ia64-efi, mips-arc, mips-qemu_mips, mipsel-arc, mipsel-loongson, mipsel-qemu_mips, powerpc-ieee1275, riscv32-efi, riscv64-efi, sparc64-ieee1275, x86_64-efi, x86_64-xen
-?, --help give this help list
--usage give a short usage message
-V, --version print program version
Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options.
INSTALL_DEVICE must be system device filename.  grub-install copies GRUB images into /boot/grub.  On some platforms, it may also install GRUB into the boot sector.
grub-mkconfig(8), grub-mkimage(1), grub-mkrescue(1)
The full documentation for grub-install is maintained as a Texinfo manual.  If the info and grub-install programs are properly installed at your site, the command
info grub-install
APT-CACHE(8)                           APT                          APT-CACHE(8)
apt-cache - query the APT cache
apt-cache [-agipns] [-o=config_string] [-c=config_file] {gencaches | showpkg pkg...  | showsrc pkg...  | stats | dump | dumpavail | unmet | search regex...  | show pkg [{=pkg_version_number | /target_release}]...  | depends pkg [{=pkg_version_number | /target_release}]...  | rdepends pkg [{=pkg_version_number | /target_release}]...  | pkgnames [prefix]  | dotty pkg [{=pkg_version_number | /target_release}]...  | xvcg pkg [{=pkg_version_number | /target_release}]...  | policy [pkg...]  | madison pkg...  | {-v | --version} | {-h | --help}}
apt-cache performs a variety of operations on APT's package cache. apt-cache does not manipulate the state of the system but does provide operations to search and generate interesting output from the package metadata. The metadata is acquired and updated via the 'update' command of e.g.  apt-get, so that it can be outdated if the last update is too long ago, but in exchange apt-cache works independently of the availability of the configured sources (e.g. offline).
Unless the -h, or --help option is given, one of the commands below must be present.
gencaches gencaches creates APT's package cache. This is done implicitly by all commands needing this cache if it is missing or outdated.
showpkg pkg... showpkg displays information about the packages listed on the command line. Remaining arguments are package names. The available versions and reverse dependencies of each package listed are listed, as well as forward dependencies for each version. Forward (normal) dependencies are those packages upon which the package in question depends; reverse dependencies are those packages that depend upon the package in question. Thus, forward dependencies must be satisfied for a package, but reverse dependencies need not be. For instance, apt-cache showpkg libreadline2 would produce output similar to the following:
Package: libreadline2 Versions: 2.1-12(/var/state/apt/lists/foo_Packages), Reverse Depends: libreadlineg2,libreadline2 libreadline2-altdev,libreadline2 Dependencies: 2.1-12 - libc5 (2 5.4.0-0) ncurses3.0 (0 (null)) Provides: 2.1-12 - Reverse Provides: Thus it may be seen that libreadline2, version 2.1-12, depends on libc5 and ncurses3.0 which must be installed for libreadline2 to work. In turn, libreadlineg2 and libreadline2-altdev depend on libreadline2. If libreadline2 is installed, libc5 and ncurses3.0 (and ldso) must also be installed; libreadlineg2 and libreadline2-altdev do not have to be installed. For the specific meaning of the remainder of the output it is best to consult the apt source code.
stats stats displays some statistics about the cache. No further arguments are expected. Statistics reported are:
•   Total package names is the number of package names found in the cache.
•   Normal packages is the number of regular, ordinary package names; these are packages that bear a one-to-one correspondence between their names and the names used by other packages for them in dependencies. The majority of packages fall into this category.
•   Pure virtual packages is the number of packages that exist only as a virtual package name; that is, packages only "provide" the virtual package name, and no package actually uses the name. For instance, "mail-transport-agent" in the Debian system is a pure virtual package; several packages provide "mail-transport-agent", but there is no package named "mail-transport-agent".
•   Single virtual packages is the number of packages with only one package providing a particular virtual package. For example, in the Debian system, "X11-text-viewer" is a virtual package, but only one package, xless, provides "X11-text-viewer".
•   Mixed virtual packages is the number of packages that either provide a particular virtual package or have the virtual package name as the package name. For instance, in the Debian system, "debconf" is both an actual package, and provided by the debconf-tiny package.
•   Missing is the number of package names that were referenced in a dependency but were not provided by any package. Missing packages may be an evidence if a full distribution is not accessed, or if a package (real or virtual) has been dropped from the distribution. Usually they are referenced from Conflicts or Breaks statements.
•   Total distinct versions is the number of package versions found in the cache. If more than one distribution is being accessed (for instance, "stable" and "unstable"), this value can be considerably larger than the number of total package names.
•   Total dependencies is the number of dependency relationships claimed by all of the packages in the cache.
showsrc pkg... showsrc displays all the source package records that match the given package names. All versions are shown, as well as all records that declare the name to be a binary package. Use --only-source to display only source package names.
dump dump shows a short listing of every package in the cache. It is primarily for debugging.
dumpavail dumpavail prints out an available list to stdout. This is suitable for use with dpkg(1) and is used by the dselect(1) method.
unmet unmet displays a summary of all unmet dependencies in the package cache.
show pkg... show performs a function similar to dpkg --print-avail; it displays the package records for the named packages.
search regex... search performs a full text search on all available package lists for the POSIX regex pattern given, see regex(7). It searches the package names and the descriptions for an occurrence of the regular expression and prints out the package name and the short description, including virtual package names. If --full is given then output identical to show is produced for each matched package, and if --names-only is given then the long description is not searched, only the package name and provided packages are.
Separate arguments can be used to specify multiple search patterns that are and'ed together.
depends pkg... depends shows a listing of each dependency a package has and all the possible other packages that can fulfill that dependency.
rdepends pkg... rdepends shows a listing of each reverse dependency a package has.
pkgnames [prefix] This command prints the name of each package APT knows. The optional argument is a prefix match to filter the name list. The output is suitable for use in a shell tab complete function and the output is generated extremely quickly. This command is best used with the --generate option.
Note that a package which APT knows of is not necessarily available to download, installable or installed, e.g. virtual packages are also listed in the generated list.
dotty pkg... dotty takes a list of packages on the command line and generates output suitable for use by dotty from the GraphViz[1] package. The result will be a set of nodes and edges representing the relationships between the packages. By default the given packages will trace out all dependent packages; this can produce a very large graph. To limit the output to only the packages listed on the command line, set the APT::Cache::GivenOnly option.
The resulting nodes will have several shapes; normal packages are boxes, pure virtual packages are triangles, mixed virtual packages are diamonds, missing packages are hexagons. Orange boxes mean recursion was stopped (leaf packages), blue lines are pre-depends, green lines are conflicts.
Caution, dotty cannot graph larger sets of packages.
xvcg pkg... The same as dotty, only for xvcg from the VCG tool[2].
policy [pkg...] policy is meant to help debug issues relating to the preferences file. With no arguments it will print out the priorities of each source. Otherwise it prints out detailed information about the priority selection of the named package.
madison pkg... apt-cache's madison command attempts to mimic the output format and a subset of the functionality of the Debian archive management tool, madison. It displays available versions of a package in a tabular format. Unlike the original madison, it can only display information for the architecture for which APT has retrieved package lists (APT::Architecture).
All command line options may be set using the configuration file, the descriptions indicate the configuration option to set. For boolean options you can override the config file by using something like -f-,--no-f, -f=no or several other variations.
-p, --pkg-cache Select the file to store the package cache. The package cache is the primary cache used by all operations. Configuration Item: Dir::Cache::pkgcache.
-s, --src-cache Select the file to store the source cache. The source is used only by gencaches and it stores a parsed version of the package information from remote sources. When building the package cache the source cache is used to avoid reparsing all of the package files. Configuration Item: Dir::Cache::srcpkgcache.
-q, --quiet Quiet; produces output suitable for logging, omitting progress indicators. More q's will produce more quietness up to a maximum of 2. You can also use -q=# to set the quietness level, overriding the configuration file. Configuration Item: quiet.
-i, --important Print only important dependencies; for use with unmet and depends. Causes only Depends and Pre-Depends relations to be printed. Configuration Item: APT::Cache::Important.
--no-pre-depends, --no-depends, --no-recommends, --no-suggests, --no-conflicts, --no-breaks, --no-replaces, --no-enhances Per default the depends and rdepends print all dependencies. This can be tweaked with these flags which will omit the specified dependency type. Configuration Item: APT::Cache::ShowDependencyType e.g. APT::Cache::ShowRecommends.
--implicit Per default depends and rdepends print only dependencies explicitly expressed in the metadata. With this flag it will also show dependencies implicitly added based on the encountered data. A Conflicts: foo e.g. expresses implicitly that this package also conflicts with the package foo from any other architecture. Configuration Item: APT::Cache::ShowImplicit.
-f, --full Print full package records when searching. Configuration Item: APT::Cache::ShowFull.
-a, --all-versions Print full records for all available versions. This is the default; to turn it off, use --no-all-versions. If --no-all-versions is specified, only the candidate version will be displayed (the one which would be selected for installation). This option is only applicable to the show command. Configuration Item: APT::Cache::AllVersions.
-g, --generate Perform automatic package cache regeneration, rather than use the cache as it is. This is the default; to turn it off, use --no-generate. Configuration Item: APT::Cache::Generate.
--names-only, -n Only search on the package and provided package names, not the long descriptions. Configuration Item: APT::Cache::NamesOnly.
--all-names Make pkgnames print all names, including virtual packages and missing dependencies. Configuration Item: APT::Cache::AllNames.
--recurse Make depends and rdepends recursive so that all packages mentioned are printed once. Configuration Item: APT::Cache::RecurseDepends.
--installed Limit the output of depends and rdepends to packages which are currently installed. Configuration Item: APT::Cache::Installed.
--with-source filename Adds the given file as a source for metadata. Can be repeated to add multiple files. Supported are currently *.deb, *.dsc, *.changes, Sources and Packages files as well as source package directories. Files are matched based on their name only, not their content!
Sources and Packages can be compressed in any format apt supports as long as they have the correct extension. If you need to store multiple of these files in one directory you can prefix a name of your choice with the last character being an underscore ("_"). Example: my.example_Packages.xz
Note that these sources are treated as trusted (see apt-secure(8)). Configuration Item: APT::Sources::With.
-h, --help Show a short usage summary.
-v, --version Show the program version.
-c, --config-file Configuration File; Specify a configuration file to use. The program will read the default configuration file and then this configuration file. If configuration settings need to be set before the default configuration files are parsed specify a file with the APT_CONFIG environment variable. See apt.conf(5) for syntax information.
-o, --option Set a Configuration Option; This will set an arbitrary configuration option. The syntax is -o Foo::Bar=bar.  -o and --option can be used multiple times to set different options.
/etc/apt/sources.list Locations to fetch packages from. Configuration Item: Dir::Etc::SourceList.
/etc/apt/sources.list.d/ File fragments for locations to fetch packages from. Configuration Item: Dir::Etc::SourceParts.
/var/lib/apt/lists/ Storage area for state information for each package resource specified in sources.list(5) Configuration Item: Dir::State::Lists.
/var/lib/apt/lists/partial/ Storage area for state information in transit. Configuration Item: Dir::State::Lists (partial will be implicitly appended)
apt.conf(5), sources.list(5), apt-get(8)
apt-cache returns zero on normal operation, decimal 100 on error.
APT bug page[3]. If you wish to report a bug in APT, please see /usr/share/doc/debian/bug-reporting.txt or the reportbug(1) command.
1. GraphViz http://www.research.att.com/sw/tools/graphviz/
2. VCG tool http://rw4.cs.uni-sb.de/users/sander/html/gsvcg1.html
3. APT bug page http://bugs.debian.org/src:apt
CABAL(1)                     General Commands Manual                    CABAL(1)
cabal - a system for building and packaging Haskell libraries and programs
cabal command <arguments|[options]>...
Where the commands are
Cabal is the standard package system for Haskell software. It helps people to configure, build and install Haskell software and to distribute it easily to other users and developers.
The command line cabal tool (also referred to as cabal-install) helps with installing existing packages and developing new packages.  It can be used to work with local packages or to install packages from online package archives, including automatically installing dependencies. By default it is configured to use Hackage, which is Haskell's central package archive that contains thousands of libraries and applications in the Cabal package format.
Global options:
-V, --version Print version information
--numeric-version Print just the version number
--config-file FILE Set an alternate location for the config file
--sandbox-config-file FILE Set an alternate location for the sandbox config file (default: './cabal.sandbox.config')
--default-user-config FILE Set a location for a cabal.config file for projects without their own cabal.config freeze file.
--require-sandbox --no-require-sandbox requiring the presence of a sandbox for sandbox-aware commands
--ignore-sandbox Ignore any existing sandbox
--ignore-expiry Ignore expiry dates on signed metadata (use only in exceptional circumstances)
--http-transport HttpTransport Set a transport for http(s) requests. Accepts 'curl', 'wget', 'powershell', and 'plain-http'. (default: 'curl')
--enable-nix --disable-nix Nix integration: run commands through nix-shell if a 'shell.nix' file exists
--remote-repo NAME:URL The name and url for a remote repository
--local-no-index-repo NAME:PATH The name and a path for a local no-index repository
--remote-repo-cache DIR The location where downloads from all remote repos are cached
--local-repo DIR The location of a local repository
--logs-dir, --logsdir DIR The location to put log files
--world-file FILE The location of the world file
--store-dir, --storedir DIR The location of the nix-local-build store
cabal list
Usage: cabal list [FLAGS] or: cabal list [FLAGS] STRINGS
List all packages, or all packages matching one of the search strings.
If there is a sandbox in the current directory and config:ignore-sandbox is False, use the sandbox package database. Otherwise, use the package database specified with --package-db. If not specified, use the user package database.
Examples: cabal list pandoc Will find pandoc, pandoc-citeproc, pandoc-lens, ...
Flags: -v, --verbose [n] Control verbosity (n is 0--3, default verbosity level is 1)
--installed Only print installed packages
--simple-output Print in a easy-to-parse format
--package-db DB Append the given package database to the list of package databases used (to satisfy dependencies and register into). May be a specific file, 'global' or 'user'. The initial list is ['global'], ['global', 'user'], or ['global', $sandbox], depending on context. Use 'clear' to reset the list to empty. See the user guide for details.
cabal info
Usage: cabal info [FLAGS] PACKAGES
cabal fetch
Usage: cabal fetch [FLAGS] PACKAGES
Note that it currently is not possible to fetch the dependencies for a package in the current directory.
--dependencies, --deps Resolve and fetch dependencies (default)
--no-dependencies, --no-deps Ignore dependencies
--dry-run Do not install anything, only print what would be installed.
--enable-tests --disable-tests dependency checking and compilation for test suites listed in the package description file.
--enable-benchmarks --disable-benchmarks dependency checking and compilation for benchmarks listed in the package description file.
--solver SOLVER Select dependency solver to use (default: modular). Choices: modular.
--max-backjumps NUM Maximum number of backjumps allowed while solving (default: 4000). Use a negative number to enable unlimited backtracking. Use 0 to disable backtracking completely.
--reorder-goals --no-reorder-goals Try to reorder goals according to certain heuristics. Slows things down on average, but may make backtracking faster for some packages.
--count-conflicts --no-count-conflicts Try to speed up solving by preferring goals that are involved in a lot of conflicts (default).
--fine-grained-conflicts --no-fine-grained-conflicts Skip a version of a package if it does not resolve the conflicts encountered in the last version, as a solver optimization (default).
--minimize-conflict-set --no-minimize-conflict-set When there is no solution, try to improve the error message by finding a minimal conflict set (default: false). May increase run time significantly.
--independent-goals --no-independent-goals Treat several goals on the command line as independent. If several goals depend on the same package, different versions can be chosen.
--shadow-installed-packages --no-shadow-installed-packages If multiple package instances of the same version are installed, treat all but one as shadowed.
--strong-flags --no-strong-flags Do not defer flag choices (this used to be the default in cabal-install <= 1.20).
--allow-boot-library-installs --no-allow-boot-library-installs Allow cabal to install base, ghc-prim, integer-simple, integer-gmp, and template-haskell.
--reject-unconstrained-dependencies none|all Require these packages to have constraints on them if they are to be selected (default: none).
cabal get
Usage: cabal get [PACKAGES]
Creates a local copy of a package's source code. By default it gets the source tarball and unpacks it in a local subdirectory. Alternatively, with -s it will get the code from the source repository specified by the package.
Examples: cabal get hlint Download the latest stable version of hlint; cabal get lens --source-repository=head Download the source repository (i.e. git clone from github).
-d, --destdir PATH Where to place the package source, defaults to the current directory.
-s, --source-repository [[head|this|...]] Copy the package's source repository (ie git clone, darcs get, etc as appropriate).
--index-state STATE Use source package index state as it existed at a previous time. Accepts unix-timestamps (e.g. '@1474732068'), ISO8601 UTC timestamps (e.g. '2016-09-24T17:47:48Z'), or 'HEAD' (default: 'HEAD'). This determines which package versions are available as well as .cabal file revision is selected (unless --pristine is used).
--pristine Unpack the original pristine tarball, rather than updating the .cabal file with the latest revision from the package archive.
Usage: cabal check [FLAGS]
Expects a .cabal package file in the current directory.
The checks correspond to the requirements to packages on Hackage. If no errors and warnings are reported, Hackage will accept this package.
cabal upload
Usage: cabal upload [FLAGS] TARFILES
You can store your Hackage login in the ~/.cabal/config file Relevant global configuration keys: username password
--publish Publish the package instead of uploading it as a candidate.
-d, --documentation Upload documentation instead of a source package. By default, this uploads documentation for a package candidate. To upload documentation for a published package, combine with --publish.
-u, --username USERNAME Hackage username.
-p, --password PASSWORD Hackage password.
-P, --password-command PASSWORD Command to get Hackage password.
cabal report
Usage: cabal report [FLAGS]
You can store your Hackage login in the ~/.cabal/config file
Usage: cabal init [FLAGS]
Create a .cabal, Setup.hs, and optionally a LICENSE file.
Calling init with no arguments creates an executable, guessing as many options as possible. The interactive mode can be invoked by the -i/--interactive flag, which will try to guess as much as possible and prompt you for the rest. You can change init to always be interactive by setting the interactive flag in your configuration file. Command-line arguments are provided for scripting purposes.
Flags: -i, --interactive -n, --non-interactive interactive mode.
-q, --quiet Do not generate log messages to stdout.
--no-comments Do not generate explanatory comments in the .cabal file.
-m, --minimal Generate a minimal .cabal file, that is, do not include extra empty fields.  Also implies --no-comments.
--overwrite Overwrite any existing .cabal, LICENSE, or Setup.hs files without warning.
--package-dir, --packagedir DIRECTORY Root directory of the package (default = current directory).
-p, --package-name PACKAGE Name of the Cabal package to create.
--version VERSION Initial version of the package.
--cabal-version VERSION_RANGE Version of the Cabal specification.
-l, --license LICENSE Project license.
-a, --author NAME Name of the project's author.
-e, --email EMAIL Email address of the maintainer.
-u, --homepage URL Project homepage and/or repository.
-s, --synopsis TEXT Short project synopsis.
-c, --category CATEGORY Project category.
-x, --extra-source-file FILE Extra source file to be distributed with tarball.
--lib, --is-library Build a library.
--exe, --is-executable Build an executable.
--libandexe, --is-libandexe Build a library and an executable.
--tests Generate a test suite for the library.
--test-dir DIR Directory containing tests.
--simple Create a simple project with sensible defaults.
--main-is FILE Specify the main module.
--language LANGUAGE Specify the default language.
-o, --expose-module MODULE Export a module from the package.
--extension EXTENSION Use a LANGUAGE extension (in the other-extensions field).
-d, --dependency PACKAGE Package dependency.
--application-dir DIR Directory containing package application executable.
--source-dir, --sourcedir DIR Directory containing package library source.
--build-tool TOOL Required external build tool.
-w, --with-compiler PATH give the path to a particular compiler
-v, --verbose [n] Control verbosity (n is 0--3, default verbosity level is 1)
cabal user-config
Usage: cabal user-config init or: cabal user-config diff or: cabal user-config update
When upgrading cabal, the set of configuration keys and their default values may change. This command provides means to merge the existing config in ~/.cabal/config (i.e. all bindings that are actually defined and not commented out) and the default config of the new version.
init: Creates a new config file at either ~/.cabal/config or as specified by --config-file, if given. An existing file won't be overwritten unless -f or --force is given.  diff: Shows a pseudo-diff of the user's ~/.cabal/config file and the default configuration that would be created by cabal if the config file did not exist.  update: Applies the pseudo- diff to the configuration that would be created by default, and write the result back to ~/.cabal/config.
-f, --force Overwrite the config file if it already exists.
-a, --augment CONFIGLINE Additional setting to augment the config file (replacing a previous setting if it existed).
cabal gen-bounds
Usage: cabal gen-bounds [FLAGS]
Generates bounds for all dependencies that do not currently have them. Generated bounds are printed to stdout. You can then paste them into your
cabal outdated
Usage: cabal outdated [FLAGS]
Checks for outdated dependencies in the package description file or freeze file
--freeze-file, --v1-freeze-file Act on the freeze file
--v2-freeze-file, --new-freeze-file Act on the new-style freeze file (default: cabal.project.freeze)
--project-file PROJECTFILE Act on the new-style freeze file named PROJECTFILE.freeze rather than the default cabal.project.freeze
--simple-output Only print names of outdated dependencies, one per line
--exit-code Exit with non-zero when there are outdated dependencies
-q, --quiet Don't print any output. Implies '--exit-code' and '-v0'
--ignore PKGS Packages to ignore
--minor [PKGS] Ignore major version bumps for these packages
cabal hscolour
Usage: cabal hscolour [FLAGS]
Requires the hscolour program.
Deprecated in favour of 'cabal haddock --hyperlink-source'.
--builddir, --distdir, --distpref DIR The directory where Cabal puts generated build files (default dist)
--executables Run hscolour for Executables targets
--tests Run hscolour for Test Suite targets
--benchmarks Run hscolour for Benchmark targets
--foreign-libraries Run hscolour for Foreign Library targets
--all Run hscolour for all targets
--css PATH Use a cascading style sheet
cabal configure
Usage: cabal configure [FLAGS]
Adjust how the project is built by setting additional package flags and other flags.
The configuration options are written to the 'cabal.project.local' file (or configuration from the 'cabal.project' file (if any). This combination is used as the project configuration for all other commands (such as 'build',
The configure command also checks that the project configuration will work.  In particular it checks that there is a consistent set of dependencies for the project as a whole.
The 'cabal.project.local' file persists across 'clean' but is overwritten on the next use of the 'configure' command. The intention is that the
It is never necessary to use the 'configure' command. It is merely a convenience in cases where you do not want to specify flags to 'build' (and other commands) every time and yet do not want to alter the 'cabal.project' persistently.
-g, --ghc compile with GHC
--ghcjs compile with GHCJS
--uhc compile with UHC
--haskell-suite compile with a haskell-suite compiler
--cabal-file PATH use this Cabal file
--with-hc-pkg PATH give the path to the package tool
--prefix DIR bake this prefix in preparation of installation
--bindir DIR installation directory for executables
--libdir DIR installation directory for libraries
--libsubdir DIR subdirectory of libdir in which libs are installed
--dynlibdir DIR installation directory for dynamic libraries
--libexecdir DIR installation directory for program executables
--libexecsubdir DIR subdirectory of libexecdir in which private executables are installed
--datadir DIR installation directory for read-only data
--datasubdir DIR subdirectory of datadir in which data files are installed
--docdir DIR installation directory for documentation
--htmldir DIR installation directory for HTML documentation
--haddockdir DIR installation directory for haddock interfaces
--sysconfdir DIR installation directory for configuration files
--program-prefix PREFIX prefix to be applied to installed executables
--program-suffix SUFFIX suffix to be applied to installed executables
--enable-library-vanilla --disable-library-vanilla Vanilla libraries
-p, --enable-library-profiling --disable-library-profiling Library profiling
--enable-shared --disable-shared Shared library
--enable-static --disable-static Static library
--enable-executable-dynamic --disable-executable-dynamic Executable dynamic linking
--enable-executable-static --disable-executable-static Executable fully static linking
--enable-profiling --disable-profiling Executable and library profiling
--enable-executable-profiling --disable-executable-profiling Executable profiling (DEPRECATED)
--profiling-detail level Profiling detail level for executable and library (default, none, exported-functions, toplevel-functions,  all- functions).
--library-profiling-detail level Profiling detail level for libraries only.
-O, --enable-optimization, --enable-optimisation [n] Build with optimization (n is 0--2, default is 1)
--disable-optimization, --disable-optimisation Build without optimization
--enable-debug-info [n] Emit debug info (n is 0--3, default is 0)
--disable-debug-info Don't emit debug info
--enable-library-for-ghci --disable-library-for-ghci compile library for use with GHCi
--enable-split-sections --disable-split-sections compile library code such that unneeded definitions can be dropped from the final executable (GHC 7.8+)
--enable-split-objs --disable-split-objs split library into smaller objects to reduce binary sizes (GHC 6.6+)
--enable-executable-stripping --disable-executable-stripping strip executables upon installation to reduce binary sizes
--enable-library-stripping --disable-library-stripping strip libraries upon installation to reduce binary sizes
--configure-option OPT Extra option for configure
--user --global doing a per-user installation
-f, --flags FLAGS Force values for the given flags in Cabal conditionals in the .cabal file.  E.g., --flags="debug -usebytestrings" forces the flag "debug" to true and "usebytestrings" to false.
--extra-include-dirs PATH A list of directories to search for header files
--enable-deterministic --disable-deterministic Try to be as deterministic as possible (used by the test suite)
--ipid IPID Installed package ID to compile this package as
--cid CID Installed component ID to compile this component as
--extra-lib-dirs PATH A list of directories to search for external libraries
--extra-framework-dirs PATH A list of directories to search for external frameworks (OS X only)
--extra-prog-path PATH A list of directories to search for required programs (in addition to the normal search locations)
--instantiate-with NAME=MOD A mapping of signature names to concrete module instantiations.
--enable-coverage --disable-coverage build package with Haskell Program Coverage. (GHC only)
--enable-library-coverage --disable-library-coverage build package with Haskell Program Coverage. (GHC only) (DEPRECATED)
--enable-relocatable --disable-relocatable building a package that is relocatable. (GHC only)
--disable-response-files enable workaround for old versions of programs like "ar" that do not support @file arguments
--allow-depending-on-private-libs Allow depending on private libraries. If set, the library visibility check MUST be done externally.
--with-alex PATH give the path to alex
--with-ar PATH give the path to ar
--with-c2hs PATH give the path to c2hs
--with-cpphs PATH give the path to cpphs
--with-doctest PATH give the path to doctest
--with-gcc PATH give the path to gcc
--with-ghc PATH give the path to ghc
--with-ghc-pkg PATH give the path to ghc-pkg
--with-ghcjs PATH give the path to ghcjs
--with-ghcjs-pkg PATH give the path to ghcjs-pkg
--with-greencard PATH give the path to greencard
--with-haddock PATH give the path to haddock
--with-happy PATH give the path to happy
--with-haskell-suite PATH give the path to haskell-suite
--with-haskell-suite-pkg PATH give the path to haskell-suite-pkg
--with-hmake PATH give the path to hmake
--with-hpc PATH give the path to hpc
--with-hsc2hs PATH give the path to hsc2hs
--with-hscolour PATH give the path to hscolour
--with-jhc PATH give the path to jhc
--with-ld PATH give the path to ld
--with-pkg-config PATH give the path to pkg-config
--with-runghc PATH give the path to runghc
--with-strip PATH give the path to strip
--with-tar PATH give the path to tar
--with-uhc PATH give the path to uhc
--alex-option OPT give an extra option to alex (no need to quote options containing spaces)
--ar-option OPT give an extra option to ar (no need to quote options containing spaces)
--c2hs-option OPT give an extra option to c2hs (no need to quote options containing spaces)
--cpphs-option OPT give an extra option to cpphs (no need to quote options containing spaces)
--doctest-option OPT give an extra option to doctest (no need to quote options containing spaces)
--gcc-option OPT give an extra option to gcc (no need to quote options containing spaces)
--ghc-option OPT give an extra option to ghc (no need to quote options containing spaces)
--ghc-pkg-option OPT give an extra option to ghc-pkg (no need to quote options containing spaces)
--ghcjs-option OPT give an extra option to ghcjs (no need to quote options containing spaces)
--ghcjs-pkg-option OPT give an extra option to ghcjs-pkg (no need to quote options containing spaces)
--greencard-option OPT give an extra option to greencard (no need to quote options containing spaces)
--haddock-option OPT give an extra option to haddock (no need to quote options containing spaces)
--happy-option OPT give an extra option to happy (no need to quote options containing spaces)
--haskell-suite-option OPT give an extra option to haskell-suite (no need to quote options containing spaces)
--haskell-suite-pkg-option OPT give an extra option to haskell-suite-pkg (no need to quote options containing spaces)
--hmake-option OPT give an extra option to hmake (no need to quote options containing spaces)
--hpc-option OPT give an extra option to hpc (no need to quote options containing spaces)
--hsc2hs-option OPT give an extra option to hsc2hs (no need to quote options containing spaces)
--hscolour-option OPT give an extra option to hscolour (no need to quote options containing spaces)
--jhc-option OPT give an extra option to jhc (no need to quote options containing spaces)
--ld-option OPT give an extra option to ld (no need to quote options containing spaces)
--pkg-config-option OPT give an extra option to pkg-config (no need to quote options containing spaces)
--runghc-option OPT give an extra option to runghc (no need to quote options containing spaces)
--strip-option OPT give an extra option to strip (no need to quote options containing spaces)
--tar-option OPT give an extra option to tar (no need to quote options containing spaces)
--uhc-option OPT give an extra option to uhc (no need to quote options containing spaces)
--alex-options OPTS give extra options to alex
--ar-options OPTS give extra options to ar
--c2hs-options OPTS give extra options to c2hs
--cpphs-options OPTS give extra options to cpphs
--doctest-options OPTS give extra options to doctest
--gcc-options OPTS give extra options to gcc
--ghc-options OPTS give extra options to ghc
--ghc-pkg-options OPTS give extra options to ghc-pkg
--ghcjs-options OPTS give extra options to ghcjs
--ghcjs-pkg-options OPTS give extra options to ghcjs-pkg
--greencard-options OPTS give extra options to greencard
--haddock-options OPTS give extra options to haddock
--happy-options OPTS give extra options to happy
--haskell-suite-options OPTS give extra options to haskell-suite
--haskell-suite-pkg-options OPTS give extra options to haskell-suite-pkg
--hmake-options OPTS give extra options to hmake
--hpc-options OPTS give extra options to hpc
--hsc2hs-options OPTS give extra options to hsc2hs
--hscolour-options OPTS give extra options to hscolour
--jhc-options OPTS give extra options to jhc
--ld-options OPTS give extra options to ld
--pkg-config-options OPTS give extra options to pkg-config
--runghc-options OPTS give extra options to runghc
--strip-options OPTS give extra options to strip
--tar-options OPTS give extra options to tar
--uhc-options OPTS give extra options to uhc
--cabal-lib-version VERSION Select which version of the Cabal lib to use to build packages (useful for testing).
--constraint CONSTRAINT Specify constraints on a package (version, installed/source, flags)
--preference CONSTRAINT Specify preferences (soft constraints) on the version of a package
--allow-older [DEPS] Ignore lower bounds in all dependencies or DEPS
--allow-newer [DEPS] Ignore upper bounds in all dependencies or DEPS
--write-ghc-environment-files always|never|ghc8.4.4+ Whether to create a .ghc.environment file after a successful build (v2-build only)
--enable-documentation --disable-documentation building of documentation
--doc-index-file TEMPLATE A central index of haddock API documentation (template cannot use $pkgid)
--reinstall --no-reinstall Install even if it means installing the same version again.
--avoid-reinstalls --no-avoid-reinstalls Do not select versions that would destructively overwrite installed packages.
--force-reinstalls --no-force-reinstalls Reinstall packages even if they will most likely break other installed packages.
--upgrade-dependencies --no-upgrade-dependencies Pick the latest version for all dependencies, rather than trying to pick an installed version.
--only-dependencies --no-only-dependencies Install only the dependencies necessary to build the given packages
--dependencies-only --no-dependencies-only A synonym for --only-dependencies
--index-state STATE Use source package index state as it existed at a previous time. Accepts unix-timestamps (e.g. '@1474732068'), ISO8601 UTC timestamps (e.g. '2016-09-24T17:47:48Z'), or 'HEAD' (default: 'HEAD').
--root-cmd COMMAND (No longer supported, do not use.)
--symlink-bindir DIR Add symlinks to installed executables into this directory.
--build-summary TEMPLATE Save build summaries to file (name template can use $pkgid, $compiler, $os, $arch)
--build-log TEMPLATE Log all builds to file (name template can use $pkgid, $compiler, $os, $arch)
--remote-build-reporting LEVEL Generate build reports to send to a remote server (none, anonymous or detailed).
--report-planning-failure Generate build reports when the dependency solver fails. This is used by the Hackage build bot.
--enable-per-component --disable-per-component Per-component builds when possible
--one-shot --no-one-shot Do not record the packages in the world file.
--run-tests Run package test suites during installation.
-j, --jobs [NUM] Run NUM jobs simultaneously (or '$ncpus' if no NUM is given).
--keep-going After a build failure, continue to build other unaffected packages.
--offline --no-offline Don't download packages from the Internet.
--project-file FILE Set the name of the cabal.project file to search for in parent directories
--only Only installs the package in the current directory.
--haddock-hoogle Generate a hoogle database
--haddock-html Generate HTML documentation (the default)
--haddock-html-location URL Location of HTML documentation for pre-requisite packages
--haddock-for-hackage Collection of flags to generate documentation suitable for upload to hackage
--haddock-executables Run haddock for Executables targets
--haddock-tests Run haddock for Test Suite targets
--haddock-benchmarks Run haddock for Benchmark targets
--haddock-all Run haddock for all targets
--haddock-internal Run haddock for internal modules and include all symbols
--haddock-css PATH Use PATH as the haddock stylesheet
--haddock-hyperlink-source, --haddock-hyperlink-sources, --haddock-hyperlinked-source Hyperlink the documentation to the source code
--haddock-quickjump Generate an index for interactive documentation navigation
--haddock-hscolour-css PATH Use PATH as the HsColour stylesheet
--haddock-contents-location URL Bake URL in as the location for the contents page
--test-log TEMPLATE Log all test suite results to file (name template can use $pkgid, $compiler, $os, $arch, $test-suite, $result)
--test-machine-log TEMPLATE Produce a machine-readable log file (name template can use $pkgid, $compiler, $os, $arch, $result)
--test-show-details FILTER
--test-keep-tix-files keep .tix files for HPC between test runs
--test-wrapper FILE Run test through a wrapper.
--test-fail-when-no-test-suites Exit with failure when no test suites are found.
--test-options TEMPLATES give extra options to test executables (name templates can use $pkgid, $compiler, $os, $arch, $test-suite)
--test-option TEMPLATE give extra option to test executables (no need to quote options containing spaces, name template can use $pkgid, $compiler, $os, $arch, $test-suite)
--benchmark-options TEMPLATES give extra options to benchmark executables (name templates can use $pkgid, $compiler, $os, $arch, $benchmark)
--benchmark-option TEMPLATE give extra option to benchmark executables (no need to quote options containing spaces, name template can use $pkgid, $compiler, $os, $arch, $benchmark)
cabal new-configure
Usage: cabal new-configure [FLAGS]
The configuration options are written to the 'cabal.project.local' file (or configuration from the 'cabal.project' file (if any). This combination is used as the project configuration for all other commands (such as 'new-build',
The new-configure command also checks that the project configuration will work.  In particular it checks that there is a consistent set of dependencies for the project as a whole.
The 'cabal.project.local' file persists across 'new-clean' but is overwritten on the next use of the 'new-configure' command. The intention is that the
It is never necessary to use the 'new-configure' command. It is merely a convenience in cases where you do not want to specify flags to 'new- build' (and other commands) every time and yet do not want to alter the 'cabal.project' persistently.
cabal v2-configure
Usage: cabal v2-configure [FLAGS]
The configuration options are written to the 'cabal.project.local' file (or configuration from the 'cabal.project' file (if any). This combination is used as the project configuration for all other commands (such as 'v2-build',
The v2-configure command also checks that the project configuration will work.  In particular it checks that there is a consistent set of dependencies for the project as a whole.
The 'cabal.project.local' file persists across 'v2-clean' but is overwritten on the next use of the 'v2-configure' command. The intention is that the
It is never necessary to use the 'v2-configure' command. It is merely a convenience in cases where you do not want to specify flags to 'v2-build' (and other commands) every time and yet do not want to alter the 'cabal.project' persistently.
Examples: cabal v2-configure --with-compiler ghc-7.10.3 Adjust the project configuration to use the given compiler program and check the resulting configuration works. cabal v2-configure Reset the local configuration to empty and check the overall project configuration works.
Note: this command is part of the new project-based system (aka nix-style local builds). These features are currently in beta. Please see http://cabal.readthedocs.io/en/latest/nix-local-build-overview.html for details and advice on what you can expect to work. If you encounter problems please file issues at https://github.com/haskell/cabal/issues and if you have any time to get involved and help with testing, fixing bugs etc then that is very much appreciated.
Usage: cabal update [FLAGS] [REPOS]
For all known remote repositories, download the package list.
cabal new-update
Usage: cabal new-update [FLAGS] [REPOS]
cabal v2-update
Usage: cabal v2-update [FLAGS] [REPOS]
REPO has the format <repo-id>[,<index-state>] where index-state follows the same format and syntax that is supported by the --index-state flag.
Examples: cabal v2-update Download the package list for all known remote repositories.
cabal v2-update hackage.haskell.org,@1474732068 cabal v2-update hackage.haskell.org,2016-09-24T17:47:48Z cabal v2-update hackage.haskell.org,HEAD cabal v2-update hackage.haskell.org Download hackage.haskell.org at a specific index state.
cabal new update hackage.haskell.org head.hackage Download hackage.haskell.org and head.hackage head.hackage must be a known repo-id. E.g. from your cabal.project(.local) file.
Usage: cabal build [TARGETS] [FLAGS]
Build one or more targets from within the project. The available targets are the packages in the project as well as individual components within those packages, including libraries, executables, test-suites or benchmarks. Targets can be specified by name or location. If no target is specified then the default is to build the package in the current directory.
Dependencies are built or rebuilt as necessary. Additional configuration flags can be specified on the command line and these extend the project configuration from the 'cabal.project', 'cabal.project.local' and other files.
--only-configure --no-only-configure Instead of performing a full build just run the configure step
cabal new-build
Usage: cabal new-build [TARGETS] [FLAGS]
cabal v2-build
Usage: cabal v2-build [TARGETS] [FLAGS]
Examples: cabal v2-build Build the package in the current directory or all packages in the project cabal v2-build pkgname Build the package named pkgname in the project cabal v2-build ./pkgfoo Build the package in the ./pkgfoo directory cabal v2-build cname Build the component named cname in the project cabal v2-build cname --enable-profiling Build the component in profiling mode (including dependencies as needed)
cabal repl
Usage: cabal repl [TARGET] [FLAGS]
Open an interactive session for a component within the project. The available targets are the same as for the 'build' command: individual components within packages in the project, including libraries, executables, test-suites or benchmarks. Packages can also be specified in which case the library component in the package will be used, or the (first listed) executable in the package if there is no library.
--repl-options FLAG use this option for the repl
-b, --build-depends DEPENDENCY Include an additional package in the environment presented to GHCi.
--no-transitive-deps Don't automatically include transitive dependencies of requested packages.
-z, --ignore-project Only include explicitly specified packages (and 'base').
cabal new-repl
Usage: cabal new-repl [TARGET] [FLAGS]
Open an interactive session for a component within the project. The available targets are the same as for the 'new-build' command: individual components within packages in the project, including libraries, executables, test-suites or benchmarks. Packages can also be specified in which case the library component in the package will be used, or the (first listed) executable in the package if there is no library.
cabal v2-repl
Usage: cabal v2-repl [TARGET] [FLAGS]
Open an interactive session for a component within the project. The available targets are the same as for the 'v2-build' command: individual components within packages in the project, including libraries, executables, test-suites or benchmarks. Packages can also be specified in which case the library component in the package will be used, or the (first listed) executable in the package if there is no library.