# 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 2026-08-02. Also installable with debian: sudo apt install cabal-install.

## 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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-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/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-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','bluej'

- 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
- **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>
- **Last updated:** 2026-08-02T01:55:34+09:00
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- cabal (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 3.16.1.0
## 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
## 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-3.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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-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-3.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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Haskell cabal-install library | https://hackage.haskell.org/package/cabal-install
- dnf - ghc-cabal-install-devel - 3.12.1.0-3.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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-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-3.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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Haskell cabal-install library documentation | https://hackage.haskell.org/package/cabal-install
- dnf - ghc-cabal-install-prof - 3.12.1.0-3.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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Haskell cabal-install profiling library | https://hackage.haskell.org/package/cabal-install
- dnf - ghc-cabal-install-solver - 3.12.1.0-3.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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-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-3.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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-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-3.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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-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-3.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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Haskell cabal-install-solver profiling library | https://hackage.haskell.org/package/cabal-install
- dnf - ghc-open-browser - 0.4.0.0-3.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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Haskell open-browser library | https://hackage.haskell.org/package/open-browser
- dnf - ghc-open-browser-devel - 0.4.0.0-3.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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-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-3.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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Haskell open-browser library documentation | https://hackage.haskell.org/package/cabal-install
- dnf - ghc-open-browser-prof - 0.4.0.0-3.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/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Haskell open-browser profiling library | https://hackage.haskell.org/package/cabal-install


## Combined YAML source

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


## Sources

- pkg.so package database
- Geiger risk classifier
- curated configuration and credential file locations
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
