# Install bc with Homebrew, apk, apt, dnf, MacPorts, Nix, pacman, scoop, zypper

Arbitrary precision numeric processing language. Version 1.08.2 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:bc
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install bc
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install bc
```

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

### Linux

- apk (92%):

```sh
sudo apk add bc
```

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

- Debian apt (92%):

```sh
sudo apt install bc
```

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

- dnf (92%):

```sh
sudo dnf install bc
```

  Evidence: Fedora Rawhide package metadata: bc 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#bc
```

  Evidence: nixpkgs package indexes: pkgs/by-name/bc/bc/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S bc
```

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

- zypper (92%):

```sh
sudo zypper install bc
```

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

### Windows

- Scoop (92%):

```sh
scoop install main/bc
```

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

## Package facts

- **Package key:** brew:bc
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/bc>
- **Version:** 1.08.2
- **Source summary:** Arbitrary precision numeric processing language
- **Homepage:** <https://www.gnu.org/software/bc/>
- **Upstream docs:** <https://www.gnu.org/software/bc>
- **License:** GPL-3.0-or-later
- **Source archive:** <https://ftpmirror.gnu.org/gnu/bc/bc-1.08.2.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- bc (cli)
- dc (cli)
- bc (alias)
- dc (alias)

## Build dependencies

- texinfo

## Uses from macOS

- flex
- libedit

## Install behavior

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

## Freshness

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

bc is the Unix arbitrary-precision calculator language: small enough to be a command-line calculator, but old and standard enough to appear in scripts, POSIX systems, and package-manager bootstrap sets. GNU bc packages both bc and dc, preserving the classic infix calculator and reverse-polish desk-calculator pairing.

### Project history

The bc language predates GNU bc as a Unix utility for arbitrary-precision arithmetic. POSIX standardizes bc as an arbitrary-precision arithmetic language with an interactive mode, file operands, and the -l math-library option.

GNU bc is the GNU implementation of that utility family. Its documentation describes bc as an arbitrary-precision numeric processing language and ships dc alongside it, keeping the historical relationship between the higher-level bc language and the lower-level desk calculator.

### Adoption history

bc became a portable denominator for shell arithmetic that exceeded the shell's integer facilities or needed decimal scale control. Because POSIX specifies it, distribution packages for bc are common across Unix-like systems, and Homebrew, Debian, Fedora, Arch, Nix, MacPorts, Alpine, and others all carry it.

The GNU package matters especially on systems where the base OS does not include GNU userland behavior by default, such as macOS, and in minimal containers where explicit installation keeps scripts reproducible.

### How it is used

Typical command-line use pipes expressions into bc, invokes bc -l for math functions and a nonzero default scale, or runs bc interactively as a tiny programmable calculator. Scripts use it for decimal arithmetic, base conversion, and calculations where shell integer arithmetic is not enough.

The paired dc executable serves users who prefer reverse-polish notation or need the older stack-calculator language.

### Why package nerds care

bc is a package-nerd fossil with live production value: it is tiny, standardized, scriptable, and still frequently pulled into build images because some old configure script, packaging helper, or shell one-liner expects it.

It sits at an interesting boundary between core utility and optional package. On one machine it is part of the assumed Unix furniture; on another it is the missing dependency that breaks a build with a calculator-shaped hole.

### Timeline

- POSIX Issue 7: bc specified as an arbitrary-precision arithmetic language with -l math-library behavior.
- GNU era: GNU bc maintained as the GNU implementation of bc and dc.
- 2020s: bc remains packaged across major Unix-like package managers and used in scripts and build environments.

### Related projects

- dc is the older desk-calculator companion shipped by GNU bc.
- POSIX sh arithmetic, awk, Python, and calculator-oriented tools overlap with common bc use cases, but bc remains the small standardized CLI option.
- GNU core-style packaging and Unix userland distributions are the main adoption context.

### Sources

- <https://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html>
- <https://www.gnu.org/software/bc/>
- <https://www.gnu.org/software/bc/manual/html_node/bc_toc.html>
- source_facts.package-manager


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** bc
- **Version Scheme:** 0
- **Revision:** 0
- **Conflicts With:** bc-gh
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** yes
- **URL Keys:** stable

## Other Package-Manager Records

- Debian apt - bc - 1.07.1-4: normalized package name match | Debian stable package indexes: bc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU bc arbitrary precision calculator language | https://www.gnu.org/software/bc/
- Debian apt - dc - 1.07.1-4: normalized package name match | Debian stable package indexes: dc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | GNU dc arbitrary precision reverse-polish calculator | https://www.gnu.org/software/bc/
- Nix - bc: normalized package name match | nixpkgs package indexes: pkgs/by-name/bc/bc/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - bc - 1.07.1-3ubuntu4: normalized package name match | Ubuntu 24.04 LTS package indexes: bc from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | GNU bc arbitrary precision calculator language | https://www.gnu.org/software/bc/
- Ubuntu apt - dc - 1.07.1-3ubuntu4: normalized package name match | Ubuntu 24.04 LTS package indexes: dc from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | GNU dc arbitrary precision reverse-polish calculator | https://www.gnu.org/software/bc/
- apk - bc - 1.08.2-r1: normalized package name match | Alpine Linux edge package indexes: bc from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | Arbitrary precision numeric processing language (calculator) | https://www.gnu.org/software/bc/bc.html
- apk - bc-doc - 1.08.2-r1: normalized package name match | Alpine Linux edge package indexes: bc-doc from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | Arbitrary precision numeric processing language (calculator) (documentation) | https://www.gnu.org/software/bc/bc.html
- dnf - bc - 1.08.2-4.fc44: normalized package name match | Fedora Rawhide package metadata: bc from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | GNU's bc (a numeric processing language) and dc (a calculator) | https://www.gnu.org/software/bc/
- pacman - bc - 1.08.2-1: normalized package name match | Arch Linux sync databases: bc from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | An arbitrary precision calculator language | https://www.gnu.org/software/bc/
- zypper - bc - 1.08.2-1.4: normalized package name match | openSUSE Tumbleweed package metadata: bc from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | GNU Command Line Calculator | https://www.gnu.org/software/bc/
- MacPorts - bc: normalized package name match | MacPorts ports tree: math/bc/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Scoop - main/bc: normalized package name match | Scoop official bucket manifest trees: bucket/bc.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Homebrew utility packages](https://www.automicvault.com/pkg/brew-utility-packages/) - Matched Homebrew package provider.
- [texinfo](https://www.automicvault.com/pkg/brew/texinfo/) - Build dependency declared by Homebrew.
- [coreutils](https://www.automicvault.com/pkg/brew/coreutils/) - Shares av.db curated category or tags: cli, gnu, posix, system.
- [acl](https://www.automicvault.com/pkg/brew/acl/) - Shares av.db curated category or tags: cli, posix, system.
- [bash](https://www.automicvault.com/pkg/brew/bash/) - Shares av.db curated category or tags: cli, gnu, system.
- [cpio](https://www.automicvault.com/pkg/brew/cpio/) - Shares av.db curated category or tags: cli, gnu, system.
- [dash-shell](https://www.automicvault.com/pkg/brew/dash-shell/) - Shares av.db curated category or tags: cli, posix, system.
- [ddrescue](https://www.automicvault.com/pkg/brew/ddrescue/) - Shares av.db curated category or tags: cli, gnu, system.
- [direvent](https://www.automicvault.com/pkg/brew/direvent/) - Shares av.db curated category or tags: cli, gnu, system.
- [etsh](https://www.automicvault.com/pkg/brew/etsh/) - Shares av.db curated category or tags: cli, posix, system.

## Combined YAML source

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


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- 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
