# 使用 Homebrew, apk, apt, MacPorts, Nix, pacman, zypper 安装 yadm

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

## 安装

```sh
sudo av install brew:yadm
```

其他安装命令:

### macOS

- Homebrew (100%):

```sh
brew install yadm
```

  证据: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install yadm
```

  证据: MacPorts ports tree: sysutils/yadm/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add yadm
```

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

- Debian apt (92%):

```sh
sudo apt install yadm
```

  证据: Debian stable package indexes: yadm from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- Nix (92%):

```sh
nix profile install nixpkgs#yadm
```

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

- pacman (92%):

```sh
sudo pacman -S yadm
```

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

- zypper (92%):

```sh
sudo zypper install yadm
```

  证据: openSUSE Tumbleweed package metadata: yadm from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst

## 软件包事实

- **软件包键:** brew:yadm
- **软件包管理器:** Homebrew
- **版本:** 3.5.0
- **来源摘要:** Yet Another Dotfiles Manager
- **主页:** <https://yadm.io/>
- **仓库:** <https://github.com/yadm-dev/yadm>
- **已生成:** 2026-08-03T19:37:03+00:00

## 可执行文件

- yadm (别名)

## 安装行为

- Bottle: 不可用

## 版本和新鲜度

- 页面生成时间: 2026-08-03
- 管理器版本: 3.5.0
## 项目历史与用法

yadm, Yet Another Dotfiles Manager, is a Git-based dotfile manager that keeps files in their natural locations under $HOME while storing them in a single repository. Its identity is deliberately boring in the best way: if a user knows Git, yadm mostly feels like Git plus dotfile-specific alternates, encryption, bootstrap, hooks, and templates.

### 项目历史

The project was created by Tim Byrne and shared as open source in 2015, according to the author's Hacker News explanation. The motivation was portability, seamless Git interaction, alternate files for different hosts, and encryption for private data.

Early yadm solved a practical dotfiles problem: a bare Git repository in $HOME is powerful, but awkward around secrets, host-specific files, and new-machine bootstrap. yadm wrapped Git so the repository can track files in place while hiding the Git plumbing from day-to-day commands.

The 2.x and 3.x change logs show steady evolution rather than reinvention. Version 2.0.0 redesigned alternate processing, added XDG base-directory support, templates, distro-aware alternates, and an upgrade command; version 3.0.0 added OpenSSL encryption support, include directives in the built-in template processor, and moved default repository/encrypted archive locations under XDG-style data directories.

### 采用历史

yadm spread through developer workstations and Unix package managers because it let users manage dotfiles without symlink farms or a custom DSL. The official site sells the core adoption hook clearly: anything a user can do with Git, they can do using yadm.

Its practical adoption is visible in distribution packages, docs, blog posts, and configuration-management roles. Users often pair it with broader system setup tools: yadm pulls dotfiles, decrypts secrets, selects alternates, and runs bootstrap scripts, while tools such as Home Manager, Ansible, or shell installers handle larger machine state.

### 使用方式

Typical usage starts with yadm init or yadm clone, then yadm add, commit, push, pull, and status in the same mental model as Git. The work tree is the user's home directory, so dotfiles remain where applications expect them.

The features that distinguish yadm from plain bare Git are alternates for OS/hostname/user/class differences, encrypted archives for sensitive files, bootstrap scripts for new machines, hooks around commands, and templates for generating machine-specific content.

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

yadm matters to package nerds because it is a thin wrapper over Git that resists inventing a second configuration-management universe. It packages the bare-repo dotfiles pattern into one command with just enough extra machinery for secrets and host variance.

It is also a clean example of a tool whose package value is ergonomic, not algorithmic: the hard dependency is already Git, but the wrapper codifies safe defaults, XDG paths, alternates, encryption, and bootstrap conventions that many users would otherwise script badly.

### 时间线

- 2015: Tim Byrne shares yadm as an open-source dotfile manager focused on Git portability, alternates, and encryption.
- 1.10.0: yadm transitions to semantic versioning.
- 2.0.0: yadm adds XDG base-directory support, redesigns alternate processing, adds a built-in default template processor, distro-aware alternates, and an upgrade command.
- 3.0.0: yadm adds OpenSSL encryption support, built-in template includes, default-branch improvements, and new XDG-style default repository/archive paths.
- 2020s: yadm continues as a mature dotfile package across Homebrew, Debian/Ubuntu, Arch, Nix, MacPorts, Alpine, and other package ecosystems.

### Related projects

- Git is the underlying storage and command model for yadm.
- chezmoi, GNU Stow, vcsh, homesick, and dotbot are neighboring dotfile-management tools with different tradeoffs around templating, symlinks, and repository layout.
- GPG, OpenSSL, git-crypt, and transcrypt are related through yadm's encrypted-file workflows.
- Nix Home Manager and Ansible often complement yadm by managing packages and system state while yadm manages personal files.

### 来源

- <https://github.com/yadm-dev/yadm>
- <https://github.com/yadm-dev/yadm/blob/master/CHANGES>
- <https://man.archlinux.org/man/extra/yadm/yadm.1.en>
- <https://news.ycombinator.com/item?id=27174878>
- <https://yadm.io/>
- <https://yadm.io/docs/faq>
- <https://yadm.io/docs/overview>


## 安全说明

narrow executable package without higher-risk signals.

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


## 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: ~/.config/yadm/config
## 其他软件包管理器记录

- Debian apt - yadm - 3.5.0-1: normalized package name match | Debian stable package indexes: yadm from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Yet Another Dotfiles Manager | https://github.com/TheLocehiliosan/yadm
- Nix - yadm: normalized package name match | nixpkgs package indexes: pkgs/by-name/ya/yadm/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - yadm - 3.2.2-1: normalized package name match | Ubuntu 24.04 LTS package indexes: yadm from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Yet Another Dotfiles Manager | https://github.com/TheLocehiliosan/yadm
- apk - yadm - 3.5.0-r0: normalized package name match | Alpine Linux edge package indexes: yadm from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Yet Another Dotfiles Manager | https://github.com/TheLocehiliosan/yadm
- apk - yadm-bash-completion - 3.5.0-r0: normalized package name match | Alpine Linux edge package indexes: yadm-bash-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Bash completions for yadm | https://github.com/TheLocehiliosan/yadm
- apk - yadm-doc - 3.5.0-r0: normalized package name match | Alpine Linux edge package indexes: yadm-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Yet Another Dotfiles Manager (documentation) | https://github.com/TheLocehiliosan/yadm
- apk - yadm-fish-completion - 3.5.0-r0: normalized package name match | Alpine Linux edge package indexes: yadm-fish-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Fish completions for yadm | https://github.com/TheLocehiliosan/yadm
- apk - yadm-zsh-completion - 3.5.0-r0: normalized package name match | Alpine Linux edge package indexes: yadm-zsh-completion from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Zsh completions for yadm | https://github.com/TheLocehiliosan/yadm
- pacman - yadm - 3.5.0-1: normalized package name match | Arch Linux sync databases: yadm from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Yet Another Dotfiles Manager | https://github.com/yadm-dev/yadm
- zypper - yadm - 3.3.0-1.4: normalized package name match | openSUSE Tumbleweed package metadata: yadm from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Yet Another Dotfiles Manager | https://yadm.io
- zypper - yadm-bash-completion - 3.3.0-1.4: normalized package name match | openSUSE Tumbleweed package metadata: yadm-bash-completion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Bash completions for yadm | https://yadm.io
- zypper - yadm-fish-completion - 3.3.0-1.4: normalized package name match | openSUSE Tumbleweed package metadata: yadm-fish-completion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | Fish Completion for yadm | https://yadm.io
- zypper - yadm-zsh-completion - 3.3.0-1.4: normalized package name match | openSUSE Tumbleweed package metadata: yadm-zsh-completion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | ZSH Completion for yadm | https://yadm.io
- MacPorts - yadm: normalized package name match | MacPorts ports tree: sysutils/yadm/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Combined YAML source

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


## 来源

- 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
