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

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

## 安装

```sh
sudo av install brew:wiggle
```

其他安装命令:

### macOS

- Homebrew (100%):

```sh
brew install wiggle
```

  证据: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install wiggle
```

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

### Linux

- apk (92%):

```sh
sudo apk add wiggle
```

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

- Debian apt (92%):

```sh
sudo apt install wiggle
```

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

- Nix (92%):

```sh
nix profile install nixpkgs#wiggle
```

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

- zypper (92%):

```sh
sudo zypper install wiggle
```

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

## 软件包事实

- **软件包键:** brew:wiggle
- **软件包管理器:** Homebrew
- **软件包管理器页面:** <https://formulae.brew.sh/formula/wiggle>
- **版本:** 1.3
- **来源摘要:** Program for applying patches with conflicting changes
- **主页:** <https://github.com/neilbrown/wiggle>
- **仓库:** <https://github.com/neilbrown/wiggle>
- **许可证:** GPL-2.0-or-later
- **源码归档:** <https://github.com/neilbrown/wiggle/archive/refs/tags/v1.3.tar.gz>
- **已生成:** 2026-08-04T22:13:35+00:00

## 可执行文件

- wiggle (cli)
- wiggle (别名)

## macOS 提供的库

- ncurses

## 安装行为

- post-install 钩子: 未定义
- Bottle: 可用 于 arm64_big_sur, arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, big_sur, catalina, monterey, sonoma, ventura

## 版本和新鲜度

- 页面生成时间: 2026-08-04
- 管理器版本: 1.3
- 本地数据: OK
- 上游仓库: https://github.com/neilbrown/wiggle
- 检测到的最新版本: v1.3 (当前)
- 信息: No package-manager update timestamp was available.
## 项目历史与用法

wiggle is Neil Brown's GPL command-line tool for applying patches when ordinary `patch` cannot match the target file cleanly, and for showing word-wise diffs. Its niche is the messy middle ground between a rejected patch and a full three-way merge: it tries to align the old text in a patch with the current file, apply every change somewhere, and mark unresolved conflicts for review.

### 项目历史

Neil Brown announced the first public release of wiggle on the Linux kernel mailing list on May 19, 2003. The announcement described the core use case as applying patches that `patch` cannot apply because the original file has conflicting changes, especially when back-porting patches from development kernels onto stable kernels.

The name came from Andrew Morton's phrasing about wanting a tool to 'wiggle' a patch into a file. The first public announcement already included a tests directory, a patch-management helper script named `p`, and a note that a future visualization UI would be useful.

The manual page preserves the tool's long maintenance arc, with copyright lines spanning 2003, 2010-2013, and 2018-2020. GitHub releases list v1.0 through v1.3, with v1.3 published in October 2020.

### 采用历史

wiggle's adoption has been specialized rather than mass-market. It is useful to kernel and distribution developers, downstream maintainers, and anyone carrying patch queues across drifting source trees. The GitHub repository showed about 108 stars and 9 forks in July 2026, but its more important adoption signal is its presence in Unix packaging ecosystems and its long-lived man page as a developer tool.

### 使用方式

A common workflow is to run `patch`, collect `.rej` files, then run `wiggle --replace originalfile originalfile.rej` for each rejected hunk. The user must still inspect the result, because wiggle can annotate unresolved conflicts and cannot prove semantic correctness. It also has merge, diff, extract, and browse modes; browse mode gives an ncurses-based inspection path for patches and conflicts.

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

wiggle matters because it encodes a very Unixy idea: keep the format and workflow of patches, but make the recovery path smarter at word granularity. For package maintainers carrying downstream patches, that can be the difference between manually rewriting a patch and letting a small tool salvage most of it while clearly marking the rest.

### 时间线

- 2003-05-19: Neil Brown announced the first public release on LKML.
- 2010-2013: Maintained under Neil Brown's SUSE-era copyright line in the manual.
- 2018-2020: Later maintenance period reflected in the manual page copyright line.
- 2020-10-06: GitHub release records include v1.0 through v1.3, with v1.3 the latest listed release.

### Related projects

- wiggle is related to `patch`, `merge`, line-oriented diff tools, and patch-stack workflows used by kernel and distribution maintainers. Its distinctive feature is word-wise alignment and conflict reporting rather than simply rejecting hunks.

### 来源

- <https://github.com/neilbrown/wiggle - upstream repository overview>
- <https://github.com/neilbrown/wiggle/blob/master/wiggle.1 - upstream manual page>
- <https://github.com/neilbrown/wiggle/releases - upstream release list>
- <https://lkml.iu.edu/hypermail/linux/kernel/0305.2/0762.html - first public release announcement>


## 安全说明

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:** wiggle
- **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

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

- Debian apt - wiggle - 1.3-1: normalized package name match | Debian stable package indexes: wiggle from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | apply patches with conflicting changes | https://neil.brown.name/wiggle
- Nix - wiggle: normalized package name match | nixpkgs package indexes: pkgs/by-name/wi/wiggle/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - wiggle - 1.3-1: normalized package name match | Ubuntu 24.04 LTS package indexes: wiggle from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | apply patches with conflicting changes | https://neil.brown.name/wiggle
- apk - wiggle - 1.3-r0: normalized package name match | Alpine Linux edge package indexes: wiggle from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Tool for applying patches with conflicts | https://github.com/neilbrown/wiggle
- apk - wiggle-doc - 1.3-r0: normalized package name match | Alpine Linux edge package indexes: wiggle-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | Tool for applying patches with conflicts (documentation) | https://github.com/neilbrown/wiggle
- zypper - wiggle - 1.3-1.23: normalized package name match | openSUSE Tumbleweed package metadata: wiggle from https://download.opensuse.org/tumbleweed/repo/oss/repodata/50b07339cb64c8ed4091bdbabddadc1ff5737b090e478818a195b40d8a3292861a879139b4a3987c31109699fde9fbf4a716367ddf4eef77da75f96e3193d6ed-primary.xml.zst | A Tool for Applying Patches with Conflicts | https://neil.brown.name/wiggle/
- MacPorts - wiggle: normalized package name match | MacPorts ports tree: devel/wiggle/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## 相关链接

- [Source-control packages](https://pkg.so/zh-hans/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://pkg.so/zh-hans/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://pkg.so/zh-hans/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://pkg.so/zh-hans/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [gpatch](https://pkg.so/zh-hans/brew/gpatch/) - Shares pkgdb curated category or tags: cli, developer-tools, diff, patch.
- [jd](https://pkg.so/zh-hans/brew/jd/) - Shares pkgdb curated category or tags: cli, developer-tools, diff, patch.
- [nbdime](https://pkg.so/zh-hans/brew/nbdime/) - Shares pkgdb curated category or tags: cli, developer-tools, diff, merge.
- [tkdiff](https://pkg.so/zh-hans/brew/tkdiff/) - Shares pkgdb curated category or tags: cli, developer-tools, diff, merge.
- [fmdiff](https://pkg.so/zh-hans/brew/fmdiff/) - Shares pkgdb curated category or tags: cli, developer-tools, diff, merge.
- [git](https://pkg.so/zh-hans/brew/git/) - Shares pkgdb curated category or tags: cli, developer-tools, version-control.
- [libgit2](https://pkg.so/zh-hans/brew/libgit2/) - Shares pkgdb curated category or tags: cli, developer-tools, version-control.
- [git-lfs](https://pkg.so/zh-hans/brew/git-lfs/) - Shares pkgdb curated category or tags: cli, developer-tools, version-control.
- [git-series](https://pkg.so/zh-hans/brew/git-series/) - Local package facts share a topical domain. Shared terms: changes, cli, control, developer, developer-tools.
- [diff-so-fancy](https://pkg.so/zh-hans/brew/diff-so-fancy/) - Local package facts share a topical domain. Shared terms: cli, control, developer, developer-tools, diff.
- [diffnav](https://pkg.so/zh-hans/brew/diffnav/) - Local package facts share a topical domain. Shared terms: cli, control, developer, developer-tools, diff.

## Combined YAML source

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


## 来源

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