# Install cabal-install with Homebrew, apt, dnf, Nix, pacman, zypper, apk, chocolatey, MacPorts, scoop, winget

Command-line interface for Cabal and Hackage. Version 3.16.1.0 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:cabal-install
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install cabal-install
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install cabal
```

  Evidence: MacPorts ports tree: lang/cabal/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- Debian apt (92%):

```sh
sudo apt install cabal-install
```

  Evidence: Debian stable package indexes: cabal-install from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- dnf (92%):

```sh
sudo dnf install cabal-install
```

  Evidence: Fedora Rawhide package metadata: cabal-install from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#cabal-install
```

  Evidence: nixpkgs package indexes: cabal-install from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix

- pacman (92%):

```sh
sudo pacman -S cabal-install
```

  Evidence: Arch Linux sync databases: cabal-install from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install cabal-install
```

  Evidence: openSUSE Tumbleweed package metadata: cabal-install from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

- apk (92%):

```sh
sudo apk add cabal
```

  Evidence: Alpine Linux edge package indexes: cabal from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz

### Windows

- Chocolatey (92%):

```sh
choco install cabal
```

  Evidence: Chocolatey community package catalog: cabal from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','bluejeansapp'

- Scoop (92%):

```sh
scoop install extras/cabal
```

  Evidence: Scoop official bucket manifest trees: bucket/cabal.json from https://api.github.com/repos/ScoopInstaller/Extras/git/trees/master?recursive=1

- winget (92%):

```sh
winget install --id haskell.cabal -e
```

  Evidence: Windows Package Manager source index: haskell.cabal from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:cabal-install
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/cabal-install>
- **Version:** 3.16.1.0
- **Source summary:** Command-line interface for Cabal and Hackage
- **Homepage:** <https://www.haskell.org/cabal/>
- **Repository:** <https://github.com/haskell/cabal>
- **Upstream docs:** <https://cabal.readthedocs.io/en/stable>
- **License:** BSD-3-Clause
- **Source archive:** <https://hackage.haskell.org/package/cabal-install-3.16.1.0/cabal-install-3.16.1.0.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- cabal (cli)
- cabal (alias)

## Dependencies

- gmp

## Build dependencies

- ghc

## Uses from macOS

- libffi

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 3.16.1.0
- Local data: ok
- Upstream repository: https://www.haskell.org/cabal/
- info: No package-manager update timestamp was available.
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

cabal-install provides the cabal command-line interface for Cabal and Hackage. It is the traditional Haskell package/build tool and remains central to building, fetching, configuring, and installing Haskell packages.

### Project history

The Haskell Cabal project defines the Common Architecture for Building Applications and Libraries. The project distinguishes cabal-the-spec, cabal-the-library, and cabal-the-tool; the Homebrew cabal-install package is the tool that supplies the cabal executable.

Cabal's package description format and library became part of the common Haskell packaging infrastructure, while cabal-install added the command-line layer for interacting with local packages, remote packages, and Hackage. The upstream repository now contains Cabal, Cabal-syntax, cabal-install, cabal-install-solver, and related components.

Hackage records Cabal package releases back to 1.1.6 and cabal-install releases back to 0.4.0, with current 3.x releases maintained by the Cabal Development Team.

### Adoption history

cabal-install became a default expectation in Haskell development because it is tightly coupled to Hackage, the central package archive. The official Cabal site recommends GHCup as the preferred way to install the cabal executable, while still documenting distribution package managers and source/binary downloads.

The tool has stayed relevant alongside newer Haskell tooling because it is both a package manager and a build driver. Its v2/new-build model, package solver, freeze files, project files, and Hackage integration make it an important base layer even when users reach it indirectly through other workflows.

### How it is used

Common commands include cabal init to create package metadata, cabal build to build a project, cabal run to run an executable target, cabal test for tests, cabal update to refresh the package index, and cabal install cabal-install to self-upgrade when appropriate.

The tool manages Haskell package source, dependency solving, build plans, local project configuration, and interaction with Hackage. It is commonly installed alongside GHC, and the upstream README lists GHCup, official downloads, source builds, and preview releases as supported ways to obtain cabal-install.

### Why package nerds care

For package nerds, cabal-install is a foundational package manager because it helped define the Haskell package metadata culture around .cabal files, Hackage uploads, solver-driven dependency plans, and reproducible-ish local project builds before many language ecosystems standardized similar workflows.

Its distinction between a package description format, a library that understands the format, and a CLI that talks to Hackage is historically important. Many later package managers blur those roles; Cabal made them explicit and reusable within the Haskell ecosystem.

### Timeline

- 2003: Cabal and cabal-install copyright history begins in Hackage metadata.
- 2007: Hackage lists cabal-install 0.4.0 as the earliest cabal-install version in its version history.
- 2012: cabal-install 0.14.x appears in Hackage's version sequence, preceding the later 1.x and 2.x eras.
- 2017: cabal-install 2.0.x appears in Hackage's version sequence.
- 2019: cabal-install 3.0.x appears in Hackage's version sequence.
- 2026-01-01: Hackage lists cabal-install 3.16.1.0 as the current release upload.

### Related projects

- Cabal is the library and specification side of the same upstream repository.
- Hackage is the package archive cabal-install targets.
- GHCup is the recommended installer for GHC and cabal-install on current official pages.
- Stack is a related Haskell build tool that commonly coexists with Cabal-based packages.

### Sources

- <https://cabal.readthedocs.io/en/stable/>
- <https://github.com/haskell/cabal>
- <https://github.com/haskell/cabal/tree/master/cabal-install>
- <https://hackage.haskell.org/package/Cabal>
- <https://hackage.haskell.org/package/cabal-install>
- <https://www.haskell.org/cabal/>


## Security Notes

package manager and build ecosystem.

- **Geiger risk:** orange / high
- package manager and build ecosystem


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: $XDG_CONFIG_HOME/cabal/config, ~/.config/cabal/config, ~/.cabal/config
- Windows: %APPDATA%/cabal/config
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** cabal-install
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - cabal-install - 3.10.3.0-1+b1: normalized package name match | Debian stable package indexes: cabal-install from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | command-line interface for Cabal and Hackage | https://www.haskell.org/cabal/
- Nix - cabal-install: normalized package name match | nixpkgs package indexes: cabal-install from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
- Ubuntu apt - cabal-install - 3.8.1.0-1: normalized package name match | Ubuntu 24.04 LTS package indexes: cabal-install from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | command-line interface for Cabal and Hackage | https://www.haskell.org/cabal/
- dnf - cabal-install - 3.12.1.0-2.fc45: normalized package name match | Fedora Rawhide package metadata: cabal-install from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | The command-line interface for Cabal and Hackage | https://hackage.haskell.org/package/cabal-install
- dnf - ghc-cabal-install - 3.12.1.0-2.fc45: normalized package name match | Fedora Rawhide package metadata: ghc-cabal-install from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell cabal-install library | https://hackage.haskell.org/package/cabal-install
- dnf - ghc-cabal-install-devel - 3.12.1.0-2.fc45: normalized package name match | Fedora Rawhide package metadata: ghc-cabal-install-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell cabal-install library development files | https://hackage.haskell.org/package/cabal-install
- dnf - ghc-cabal-install-doc - 3.12.1.0-2.fc45: normalized package name match | Fedora Rawhide package metadata: ghc-cabal-install-doc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell cabal-install library documentation | https://hackage.haskell.org/package/cabal-install
- dnf - ghc-cabal-install-prof - 3.12.1.0-2.fc45: normalized package name match | Fedora Rawhide package metadata: ghc-cabal-install-prof from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell cabal-install profiling library | https://hackage.haskell.org/package/cabal-install
- dnf - ghc-cabal-install-solver - 3.12.1.0-2.fc45: normalized package name match | Fedora Rawhide package metadata: ghc-cabal-install-solver from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell cabal-install-solver library | https://hackage.haskell.org/package/cabal-install-solver
- dnf - ghc-cabal-install-solver-devel - 3.12.1.0-2.fc45: normalized package name match | Fedora Rawhide package metadata: ghc-cabal-install-solver-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell cabal-install-solver library development files | https://hackage.haskell.org/package/cabal-install
- dnf - ghc-cabal-install-solver-doc - 3.12.1.0-2.fc45: normalized package name match | Fedora Rawhide package metadata: ghc-cabal-install-solver-doc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell cabal-install-solver library documentation | https://hackage.haskell.org/package/cabal-install
- dnf - ghc-cabal-install-solver-prof - 3.12.1.0-2.fc45: normalized package name match | Fedora Rawhide package metadata: ghc-cabal-install-solver-prof from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell cabal-install-solver profiling library | https://hackage.haskell.org/package/cabal-install
- dnf - ghc-open-browser - 0.4.0.0-2.fc45: normalized package name match | Fedora Rawhide package metadata: ghc-open-browser from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell open-browser library | https://hackage.haskell.org/package/open-browser
- dnf - ghc-open-browser-devel - 0.4.0.0-2.fc45: normalized package name match | Fedora Rawhide package metadata: ghc-open-browser-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell open-browser library development files | https://hackage.haskell.org/package/cabal-install
- dnf - ghc-open-browser-doc - 0.4.0.0-2.fc45: normalized package name match | Fedora Rawhide package metadata: ghc-open-browser-doc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell open-browser library documentation | https://hackage.haskell.org/package/cabal-install
- dnf - ghc-open-browser-prof - 0.4.0.0-2.fc45: normalized package name match | Fedora Rawhide package metadata: ghc-open-browser-prof from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Haskell open-browser profiling library | https://hackage.haskell.org/package/cabal-install


## Related links

- [Package publisher tools](https://www.automicvault.com/pkg/package-publishers/) - Belongs to a package publishing or registry command family.
- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [ghc](https://www.automicvault.com/pkg/brew/ghc/) - Build dependency declared by Homebrew.
- [hpack](https://www.automicvault.com/pkg/brew/hpack/) - Shares av.db curated category or tags: build-tool, cabal, cli, developer-tools, haskell.
- [dub](https://www.automicvault.com/pkg/brew/dub/) - Shares av.db curated category or tags: build-tool, cli, developer-tools, package-management, package-manager.
- [spago](https://www.automicvault.com/pkg/brew/spago/) - Shares av.db curated category or tags: build-tool, cli, developer-tools, package-management, package-manager.
- [akku](https://www.automicvault.com/pkg/brew/akku/) - Shares av.db curated category or tags: cli, developer-tools, package-management, package-manager.
- [bower](https://www.automicvault.com/pkg/brew/bower/) - Shares av.db curated category or tags: cli, developer-tools, package-management, package-manager.
- [clib](https://www.automicvault.com/pkg/brew/clib/) - Shares av.db curated category or tags: cli, developer-tools, package-management, package-manager.
- [composer](https://www.automicvault.com/pkg/brew/composer/) - Shares av.db curated category or tags: cli, developer-tools, package-management, package-manager.
- [conan](https://www.automicvault.com/pkg/brew/conan/) - Shares av.db curated category or tags: cli, developer-tools, package-management, package-manager.
- [ghcup](https://www.automicvault.com/pkg/brew/ghcup/) - Both packages touch the same language runtime or ecosystem. Shared terms: cli, developer, developer-tools, gmp, haskell.

## Combined YAML source

View the package source record on GitHub. [combined/cabal-install.yml](https://github.com/automic-vault/db/blob/main/combined/cabal-install.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
