CABAL-INSTALL(1)
π CABAL-INSTALL(1) π
okay bestie, sit down, hydrate, because this is the manual page for cabal-install version 3.12.1.0 and it's literally the front door to the whole Haskell Cabal situation. no cap.
β¨ NAME β¨
cabal-install β the manual page for cabal-install version 3.12.1.0. that's the whole name section, we move.
πΈ SYNOPSIS πΈ
cabal [GLOBAL FLAGS] [COMMAND [FLAGS]]
that's it. that's the shape of every single thing you're about to do. flags, command, more flags. iconic.
π¦ DESCRIPTION π¦
It's the command line interface to the Haskell Cabal infrastructure. the whole thing. your girl.
If you want more info (and honestly, who doesn't), it's at http://www.haskell.org/cabal/.
π Commands:
[global]
user-configβ show and update your user's global cabal configuration. it's giving settings app but make it terminal.helpβ help about commands. the classic. when in doubt, ask for help, no shame.
[package database]
updateβ updates the list of known packages. your package knowledge stays fresh, as it should.listβ list packages matching a search string. window shopping, but for packages.infoβ display detailed information about a particular package. the deep dive, the lore, the backstory.
[initialization and download]
initβ create a new cabal package. baby's first package, so cute.fetchβ downloads packages for later installation. saving them for later like a good little bookmark.getβ download/extract a package's source code (repository). yes the parenthetical is doing a lot of work there, i don't make the rules.
[project configuration]
configureβ add extra project configuration.freezeβ freeze dependencies. lock them in place. periodt.gen-boundsβ generate dependency bounds. bounds are your friends, fr fr.outdatedβ check for outdated dependencies. the vibe check your deps did NOT want.pathβ query for simple project information. no period on that one, that's how the original rolls, i'm respecting it.
[project building and installing]
buildβ compile targets within the project. the main character command, honestly.installβ install packages.haddockβ build Haddock documentation.haddock-projectβ generate Haddocks HTML documentation for the cabal project. yes, HTML, for the people who like pretty things (me).cleanβ clean the package store and remove temporary files. spring cleaning energy, we love her.
[running and testing]
list-binβ list the path to a single executable. just the path. just the one. lowkey helpful.replβ open an interactive session for the given component. poke at your code live, it's giving science experiment π§ͺrunβ run an executable.benchβ run benchmarks. numbers go brrr.testβ run test-suites. the moment of truth, hold my hand π«Άexecβ give a command access to the store.
[sanity checks and shipping]
checkβ check the package for common mistakes. your friend who reads your essay before you submit it.sdistβ generate a source distribution file (.tar.gz).uploadβ uploads source packages or documentation to Hackage. going public, bestie!reportβ upload build reports to a remote server.
[deprecated]
β οΈ heads up: these are deprecated, meaning don't start anything new with them. they're still listed, so here they are, faithfully.
unpackβ deprecated alias forget.hscolourβ generate HsColour colourised code, in HTML format. yes, "colourised" with a u, that's the spelling, i'm not touching it.
[new-style projects (forwards-compatible aliases)]
v2-buildβ compile targets within the project.v2-configureβ add extra project configuration.v2-replβ open an interactive session for the given component.v2-runβ run an executable.v2-testβ run test-suites.v2-benchβ run benchmarks.v2-freezeβ freeze dependencies.v2-haddockβ build Haddock documentation.v2-execβ give a command access to the store.v2-updateβ updates the list of known packages.v2-installβ install packages.v2-cleanβ clean the package store and remove temporary files.v2-sdistβ generate a source distribution file (.tar.gz).
[legacy command aliases]
v1-buildβ compile all/specific components.v1-configureβ prepare to build the package.v1-replβ open an interpreter session for the given component.v1-runβ builds and runs an executable.v1-testβ run all/specific tests in the test suite.v1-benchβ run all/specific benchmarks.v1-freezeβ freeze dependencies.v1-haddockβ generate Haddock HTML documentation.v1-installβ install packages.v1-cleanβ clean up after a build.v1-copyβ copy the files of all/specific components to install locations.v1-registerβ register this package with the compiler.v1-reconfigureβ reconfigure the package if necessary.
π For more information about a command use:
cabal COMMAND --help
or
cabal help COMMAND
two paths, same destination. pick your fighter π
π To install Cabal packages from hackage use:
cabal install foo [--dry-run]
the [--dry-run] is in brackets because it's optional, bestie, but honestly? try it first. look before you leap.
π Occasionally you need to update the list of available packages:
cabal update
do it. don't skip it. your future self says thank you.
π Global flags:
-h,--helpβ show this help text.-V,--versionβ print version information.--numeric-versionβ print just the version number. just the number. no vibes, no frills.--config-file=FILEβ set an alternate location for the config file.--ignore-expiryβ ignore expiry dates on signed metadata. and listen: use only in exceptional circumstances. i'm serious, this one comes with a warning attached in the original and i am passing it straight to you.--http-transport=HttpTransportβ set a transport for http(s) requests. accepts'curl','wget','powershell', and'plain-http'. (default:'curl')--nix[=(True or False)]β [DEPRECATED] nix integration: run commands throughnix-shellif a'shell.nix'file exists (default isFalse).--enable-nixβ [DEPRECATED] enable Nix integration: run commands throughnix-shellif a'shell.nix'file exists.--disable-nixβ [DEPRECATED] disable Nix integration.--store-dir=DIRβ the location of the build store.--active-repositories=REPOSβ the active package repositories (set to':none'to disable all repositories).
note that those three nix flags are all marked [DEPRECATED] in the original and i'm keeping that energy loud and clear. deprecated means deprecated. π
π§ You can edit the cabal configuration file to set defaults:
/sbuild-nonexistent/.config/cabal/config
that exact path, character for character, don't come for me.
This file will be generated with sensible defaults if you run 'cabal update'.
compiled using version 3.12.1.0 of the Cabal library.
and that's the whole page, bestie!! you read all of it, i'm so proud, genuinely π₯Ή this was cabal-install version 3.12.1.0, from February 2026, and it's page CABAL-INSTALL(1) of the User Commands manual. go forth and cabal build, you absolute icon. πβ¨
π¦ where this page comes from
- ubuntu resolute: cabal-install 3.12.1.0-1 Β· Other
- ubuntu stonking: cabal-install 3.12.1.0-1 Β· Other
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms