# Install strip-nondeterminism with Homebrew, apk, apt, Nix, pacman, zypper

Tool for stripping bits of non-deterministic information from files. Version 1.15.1 via Homebrew; verified 2026-06-08. Also installable with debian: sudo apt install dh-strip-nondeterminism.

## Install

```sh
sudo av install brew:strip-nondeterminism
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install strip-nondeterminism
```

  Evidence: local Homebrew formula metadata

### Linux

- apk (92%):

```sh
sudo apk add strip-nondeterminism
```

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

- Debian apt (92%):

```sh
sudo apt install strip-nondeterminism
```

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

- Nix (92%):

```sh
nix profile install nixpkgs#strip-nondeterminism
```

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

- pacman (92%):

```sh
sudo pacman -S strip-nondeterminism
```

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

- zypper (92%):

```sh
sudo zypper install strip-nondeterminism
```

  Evidence: openSUSE Tumbleweed package metadata: strip-nondeterminism from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

## Package facts

- **Package key:** brew:strip-nondeterminism
- **Package manager:** Homebrew
- **Version:** 1.15.1
- **Source summary:** Tool for stripping bits of non-deterministic information from files
- **Homepage:** <https://salsa.debian.org/reproducible-builds/strip-nondeterminism>
- **Last updated:** 2026-06-08T19:20:03Z
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- strip-nondeterminism (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 1.15.1
## Project history and usage

strip-nondeterminism is a Debian Reproducible Builds tool and Perl library for removing timestamps, file ordering, and similar nondeterministic metadata from build artifacts.

### Project history

The Reproducible Builds history page says strip-nondeterminism came out of 2014 Debian reproducible-build discussions, when Andrew Ayer took on a generic post-processing tool for file formats such as gzip, Zip, Jar, Javadoc, and static archives.

The Salsa project page describes StripNondeterminism as a Perl library for stripping nondeterministic information from many file and archive formats and says it is integrated into Debian's debhelper system. The Salsa project metadata shows the current repository created on 2018-05-15.

### Adoption history

The Debian manpage documents both the standalone `strip-nondeterminism` command and `dh_strip_nondeterminism`, the debhelper program that examines package build directories and strips reproducibility-breaking metadata automatically.

The supplied package-manager facts show packaging beyond Debian and Ubuntu, including apk, Homebrew, Nix, pacman, and zypper. That spread follows the broader reproducible-builds movement across distributions.

### How it is used

As a standalone CLI, `strip-nondeterminism [-t filetype] filename ...` post-processes files when the build itself cannot be made deterministic. In Debian packaging, `dh_strip_nondeterminism` is used as a debhelper step that guesses applicable files using `file(1)` and filenames.

Package maintainers use it for the boring but essential cleanup work that makes binary packages rebuild byte-for-byte: normalizing timestamps and metadata in archives rather than patching every upstream build system immediately.

### Why package nerds care

This is package-nerd infrastructure in the purest sense: almost invisible to end users, but central to making archives auditable, rebuildable, and less dependent on trust in a single build machine.

It matters because package ecosystems discovered that reproducibility is often won by many small normalizers, policy hooks, and metadata conventions rather than one grand compiler switch.

### Timeline

- 2013: Reproducible Builds history records Debian's first large-scale reproducibility rebuilds.
- 2014: Reproducible Builds history records the idea and first release of strip-nondeterminism after DebConf14 discussions.
- 2015: Reproducible Builds history records the wider Debian announcement of reproducible-build proof-of-concept results.
- 2018-05-15: Salsa project metadata records creation of the current repository.
- 2026: Debian manpages document current standalone and debhelper command behavior.

### Related projects

- Debhelper, dpkg, diffoscope, reprotest, SOURCE_DATE_EPOCH, and the broader Reproducible Builds project are adjacent package-infrastructure work.

### Sources

- <https://manpages.debian.org/testing/dh-strip-nondeterminism/dh_strip_nondeterminism.1p.en.html>
- <https://manpages.debian.org/testing/strip-nondeterminism/strip-nondeterminism.1p.en.html>
- <https://reproducible-builds.org/docs/history/>
- <https://salsa.debian.org/reproducible-builds/strip-nondeterminism>
- source_facts.package-manager


## Security Notes

narrow executable package without higher-risk signals.

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

## Other Package-Manager Records

- Debian apt - dh-strip-nondeterminism - 1.14.1-2: normalized package name match | Debian stable package indexes: dh-strip-nondeterminism from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | file non-deterministic information stripper — Debhelper add-on | https://reproducible-builds.org/
- Debian apt - libfile-stripnondeterminism-perl - 1.14.1-2: normalized package name match | Debian stable package indexes: libfile-stripnondeterminism-perl from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | file non-deterministic information stripper — Perl module | https://reproducible-builds.org/
- Debian apt - strip-nondeterminism - 1.14.1-2: normalized package name match | Debian stable package indexes: strip-nondeterminism from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | file non-deterministic information stripper — stand-alone tool | https://reproducible-builds.org/
- Nix - strip-nondeterminism: normalized package name match | nixpkgs package indexes: strip-nondeterminism from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
- Ubuntu apt - dh-strip-nondeterminism - 1.13.1-1: normalized package name match | Ubuntu 24.04 LTS package indexes: dh-strip-nondeterminism from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | file non-deterministic information stripper — Debhelper add-on | https://reproducible-builds.org/
- Ubuntu apt - libfile-stripnondeterminism-perl - 1.13.1-1: normalized package name match | Ubuntu 24.04 LTS package indexes: libfile-stripnondeterminism-perl from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | file non-deterministic information stripper — Perl module | https://reproducible-builds.org/
- Ubuntu apt - strip-nondeterminism - 1.13.1-1: normalized package name match | Ubuntu 24.04 LTS package indexes: strip-nondeterminism from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | file non-deterministic information stripper — stand-alone tool | https://reproducible-builds.org/
- apk - strip-nondeterminism - 1.15.1-r0: normalized package name match | Alpine Linux edge package indexes: strip-nondeterminism from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Tool for stripping bits of non-deterministic information from files | https://salsa.debian.org/reproducible-builds/strip-nondeterminism
- pacman - strip-nondeterminism - 1.15.1-1: normalized package name match | Arch Linux sync databases: strip-nondeterminism from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Tool for stripping bits of non-deterministic information from files | https://salsa.debian.org/reproducible-builds/strip-nondeterminism
- zypper - strip-nondeterminism - 1.15.0-1.4: normalized package name match | openSUSE Tumbleweed package metadata: strip-nondeterminism from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | A tool for stripping non-deterministic information | https://anonscm.debian.org/git/reproducible/strip-nondeterminism.git


## Combined YAML source

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


## Sources

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