# 使用 Homebrew, dnf, Nix, pacman 安装 add-determinism

查看 add-determinism 的安装路径、可执行文件、元数据以及面向 AI 代理工作流的安全说明。

## 安装

```sh
sudo av install brew:add-determinism
```

其他安装命令:

### macOS

- Homebrew (100%):

```sh
brew install add-determinism
```

  证据: local Homebrew formula metadata

### Linux

- dnf (92%):

```sh
sudo dnf install add-determinism
```

  证据: Fedora Rawhide package metadata: add-determinism 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#add-determinism
```

  证据: nixpkgs package indexes: pkgs/by-name/ad/add-determinism/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- pacman (92%):

```sh
sudo pacman -S add-determinism
```

  证据: Arch Linux sync databases: add-determinism from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

## 软件包事实

- **软件包键:** brew:add-determinism
- **软件包管理器:** Homebrew
- **软件包管理器页面:** <https://formulae.brew.sh/formula/add-determinism>
- **版本:** 0.7.3
- **来源摘要:** Build postprocessor to reset metadata fields for build reproducibility
- **主页:** <https://github.com/keszybz/add-determinism>
- **仓库:** <https://github.com/keszybz/add-determinism>
- **上游文档:** <https://github.com/keszybz/add-determinism#readme>
- **许可证:** GPL-3.0-or-later
- **源码归档:** <https://github.com/keszybz/add-determinism/archive/refs/tags/v0.7.3.tar.gz>
- **最后更新:** 2026-06-09T00:53:04Z
- **已生成:** 2026-07-08T07:18:31+00:00

## 可执行文件

- add-det (cli)
- linkdupes (cli)
- add-det (别名)
- linkdupes (别名)

## 构建依赖

- pkgconf
- rust

## 安装行为

- post-install 钩子: 未定义
- Bottle: 可用 于 arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## 版本和新鲜度

- 页面生成时间: 2026-07-08
- 管理器版本: 0.7.3
- 管理器更新时间: 2026-06-09
- 本地数据: OK
- 上游仓库: https://github.com/keszybz/add-determinism
- 检测到的最新版本: v0.7.3 (当前)
## 项目历史与用法

add-determinism is a Rust package-build postprocessor for removing common sources of nondeterminism after a build has produced files. Its two command-line programs, add-det and linkdupes, are aimed at reproducible package builds rather than general end-user file cleanup.

### 项目历史

The GitHub repository was created in March 2024, and the official README presents the project as a from-scratch Rust implementation inspired by Debian's strip-nondeterminism. The README explains the Fedora/RHEL motivation directly: the author wanted tooling suitable for RPM buildroots without pulling Perl into all build environments, and with behavior tuned for Fedora-style artifacts such as Python bytecode.

The project quickly grew beyond a single timestamp scrubber. add-det rewrites supported archive and generated-file formats in place while preserving safety on failures; linkdupes handles duplicate files in build trees while accounting for SOURCE_DATE_EPOCH and SELinux contexts.

### 采用历史

The README documents intended integration with RPM build-root postprocessing through --brp mode and links to redhat-rpm-config pull requests adding add-det and linkdupes to %__os_install_post. The supplied package-manager metadata also shows packaging in Homebrew, Fedora/DNF, Nix, and Arch/pacman.

### 使用方式

Package maintainers run add-det over files or directories to clamp or strip metadata in ar, jar, javadoc HTML, gzip, pyc, and zip outputs. In check mode it reports files that would be modified without rewriting them, which makes it useful in reproducibility tests.

linkdupes walks build output trees and hardlinks files with identical content and compatible metadata. Its package-build angle is that it can clamp mtimes against SOURCE_DATE_EPOCH and avoid unsafe hardlinking across mismatched SELinux contexts.

### 为什么软件包爱好者会关心

This is a small but very package-manager-native tool: it encodes distro build-root concerns, reproducible-build conventions, and RPM macro integration in one binary crate. For package nerds, the interesting part is not a new file format but a practical attempt to make post-build cleanup deterministic, portable across builders, and cheap to add to packaging pipelines.

### 时间线

- 2024-03: GitHub repository created.
- 2024: v0.1.0 appears in the official tag list.
- Current README: add-det and linkdupes are documented as build postprocessors for reproducible package builds.

### Related projects

- strip-nondeterminism is cited by the README as the inspiration.
- redhat-rpm-config is cited by the README for RPM post-install integration.

### 来源

- <https://api.github.com/repos/keszybz/add-determinism>
- <https://api.github.com/repos/keszybz/add-determinism/tags?per_page=100>
- <https://github.com/keszybz/add-determinism#readme>
- source_facts.package-manager


## 安全说明

narrow executable package without higher-risk signals.

- **Geiger 风险:** 绿色 / 低
- narrow executable package without higher-risk signals

## 源数据库详情

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

## 其他软件包管理器记录

- Nix - add-determinism: normalized package name match | nixpkgs package indexes: pkgs/by-name/ad/add-determinism/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- dnf - add-determinism - 0.7.3-2.fc45: normalized package name match | Fedora Rawhide package metadata: add-determinism from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | RPM buildroot helper to strip nondeterministic bits in files | https://crates.io/crates/add-determinism
- pacman - add-determinism - 0.7.3-1: normalized package name match | Arch Linux sync databases: add-determinism from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Build postprocessor to reset metadata fields for build reproducibility | https://github.com/keszybz/add-determinism
- dnf - linkdupes - 0.7.3-2.fc45: installed executable or alias match | Fedora Rawhide package metadata: linkdupes from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | RPM buildroot helper to hardlink identical files | https://crates.io/crates/add-determinism


## 相关链接

- [Source-control packages](https://www.automicvault.com/zh-hans/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/zh-hans/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/zh-hans/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/zh-hans/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [pkgconf](https://www.automicvault.com/zh-hans/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [rust](https://www.automicvault.com/zh-hans/pkg/brew/rust/) - Build dependency declared by Homebrew.
- [haskell-stack](https://www.automicvault.com/zh-hans/pkg/brew/haskell-stack/) - Shares av.db curated category or tags: build-tools, cli, developer-tools, reproducible-builds.
- [strip-nondeterminism](https://www.automicvault.com/zh-hans/pkg/brew/strip-nondeterminism/) - Shares av.db curated category or tags: build-tools, cli, developer-tools, reproducible-builds.
- [aarch64-elf-binutils](https://www.automicvault.com/zh-hans/pkg/brew/aarch64-elf-binutils/) - Shares av.db curated category or tags: build-tools, cli, developer-tools.
- [ant](https://www.automicvault.com/zh-hans/pkg/brew/ant/) - Shares av.db curated category or tags: build-tools, cli, developer-tools.
- [bmake](https://www.automicvault.com/zh-hans/pkg/brew/bmake/) - Shares av.db curated category or tags: build-tools, cli, developer-tools.
- [buildapp](https://www.automicvault.com/zh-hans/pkg/brew/buildapp/) - Shares av.db curated category or tags: build-tools, cli, developer-tools.
- [buildozer](https://www.automicvault.com/zh-hans/pkg/brew/buildozer/) - Shares av.db curated category or tags: build-tools, cli, developer-tools.
- [ccache](https://www.automicvault.com/zh-hans/pkg/brew/ccache/) - Shares av.db curated category or tags: build-tools, cli, developer-tools.
- [gradle-profiler](https://www.automicvault.com/zh-hans/pkg/brew/gradle-profiler/) - Local metadata places this package in an adjacent workflow. Shared terms: build, build-tools, builds, cli, developer.

## Combined YAML source

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


## 来源

- 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
