# 使用 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
- **版本:** 1.3
- **来源摘要:** Program for applying patches with conflicting changes
- **主页:** <https://github.com/neilbrown/wiggle>
- **仓库:** <https://github.com/neilbrown/wiggle>
- **已生成:** 2026-08-03T19:37:03+00:00

## 可执行文件

- wiggle (别名)

## 安装行为

- Bottle: 不可用

## 版本和新鲜度

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

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

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

- 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


## 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
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
