# Install nfpm with Homebrew, apk, MacPorts, Nix, scoop, winget, zypper

Simple deb and rpm packager. Version 2.47.0 via Homebrew; verified 2026-06-21.

## Install

```sh
sudo av install brew:nfpm
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install nfpm
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install nfpm
```

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

### Linux

- apk (92%):

```sh
sudo apk add nfpm
```

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

- Nix (92%):

```sh
nix profile install nixpkgs#nfpm
```

  Evidence: nixpkgs package indexes: pkgs/by-name/nf/nfpm/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- zypper (92%):

```sh
sudo zypper install nfpm
```

  Evidence: openSUSE Tumbleweed package metadata: nfpm from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

### Windows

- Scoop (92%):

```sh
scoop install main/nfpm
```

  Evidence: Scoop official bucket manifest trees: bucket/nfpm.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

- winget (92%):

```sh
winget install --id goreleaser.nfpm -e
```

  Evidence: Windows Package Manager source index: goreleaser.nfpm from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:nfpm
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/nfpm>
- **Version:** 2.47.0
- **Source summary:** Simple deb and rpm packager
- **Homepage:** <https://nfpm.goreleaser.com/>
- **Repository:** <https://github.com/goreleaser/nfpm>
- **Upstream docs:** <https://nfpm.goreleaser.com/>
- **License:** MIT
- **Source archive:** <https://github.com/goreleaser/nfpm/archive/refs/tags/v2.47.0.tar.gz>
- **Last updated:** 2026-06-21T00:20:41Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- nfpm (cli)
- nfpm (alias)

## Build dependencies

- go

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 2.47.0
- Package-manager updated: 2026-06-21
- Local data: ok
- Upstream repository: https://github.com/goreleaser/nfpm
- Upstream latest detected: v2.47.0 (current)
## Project history and usage

nFPM is a Go-based packaging tool from the GoReleaser ecosystem for producing native Linux packages such as deb, rpm, apk, ipk, Arch Linux packages, Termux debs, and MSIX packages. Its practical niche is release automation: take files and metadata from a build and emit distro-package artifacts without forcing every project to maintain native packaging trees.

### Project history

Carlos Becker introduced nFPM in a February 23, 2018 post after working on GoReleaser and finding fpm awkward for that workflow because it depended on Ruby, tar behavior, and external packaging software. The name means "Not FPM"; the project was meant to be simpler, predictable, usable both as a library and as a binary, and implemented with minimal external dependencies.

The GitHub README repeats that origin story in package-nerd terms: fpm was useful, but its Ruby and system-tool dependencies were a pain, so nFPM became a simpler, zero-dependency, low-assumption alternative. The repository also credits fpm as the inspiration rather than pretending to be a wholly new packaging idea.

### Adoption history

nFPM's adoption is tied to GoReleaser rather than to a distro committee. Becker's original post said GoReleaser was about to remove fpm and default to nFPM, and GoReleaser's packaging documentation now exposes nFPM directly under its package/archive pipeline.

The project has grown beyond the original deb/rpm goal. GoReleaser's nFPM documentation lists apk, deb, rpm, Termux deb, Arch Linux, ipk, and MSIX as package formats, which shows how it became a general release-artifact generator for projects that ship binaries across Linux distributions and, later, Windows MSIX.

### How it is used

Package nerds use nFPM either through GoReleaser's `nfpms` section or as the standalone `nfpm` CLI/Go library. The common flow is to describe package name, files, config files, scripts, dependencies, maintainer metadata, and target formats in YAML, then have CI produce distro-shaped packages next to checksums, archives, Homebrew taps, and container images.

Its value is highest for upstream application projects that want acceptable native packages without becoming Debian, RPM, Alpine, Arch, and OpenWrt packaging specialists. It does not replace distribution-maintained packaging policy; it makes upstream release artifacts boring enough for users to install with familiar package tools.

### Why package nerds care

nFPM matters because it sits in the gray zone between tarballs and real distro packages. It gives upstream projects a small, reproducible way to generate packages with maintainer scripts and dependency metadata, while avoiding the heavier machinery of distro-specific packaging repositories.

### Timeline

- 2018-02-23: Carlos Becker published "Creating debs and rpms with Go" and described why nFPM was created.
- 2018: GoReleaser was moving away from fpm toward nFPM for its Linux package pipeline.
- 2026-06-23: GoReleaser's nFPM documentation listed Linux formats plus MSIX and Termux-specific packaging behavior.

### Related projects

- GoReleaser
- fpm
- Debian dpkg
- RPM
- Alpine apk
- Arch Linux pacman

### Sources

- <https://carlosbecker.com/posts/nfpm/>
- <https://formulae.brew.sh/formula/nfpm>
- <https://github.com/goreleaser/nfpm>
- <https://goreleaser.com/customization/package/nfpm/>
- <https://nfpm.goreleaser.com/docs/quick-start/>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- 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: ./nfpm.yaml
## Source Database Details

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

## Other Package-Manager Records

- Nix - nfpm: normalized package name match | nixpkgs package indexes: pkgs/by-name/nf/nfpm/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - nfpm - 2.46.3-r0: normalized package name match | Alpine Linux edge package indexes: nfpm from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | a simple apk, Deb and RPM packager without external dependencies | https://nfpm.goreleaser.com/
- apk - nfpm-doc - 2.46.3-r0: normalized package name match | Alpine Linux edge package indexes: nfpm-doc from https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz | a simple apk, Deb and RPM packager without external dependencies (documentation) | https://nfpm.goreleaser.com/
- zypper - nfpm - 2.46.3-1.1: normalized package name match | openSUSE Tumbleweed package metadata: nfpm from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Simple deb, rpm, apk and arch linux packager written in Go | https://github.com/goreleaser/nfpm
- zypper - nfpm-bash-completion - 2.46.3-1.1: normalized package name match | openSUSE Tumbleweed package metadata: nfpm-bash-completion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Bash Completion for nfpm | https://github.com/goreleaser/nfpm
- zypper - nfpm-fish-completion - 2.46.3-1.1: normalized package name match | openSUSE Tumbleweed package metadata: nfpm-fish-completion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Fish Completion for nfpm | https://github.com/goreleaser/nfpm
- zypper - nfpm-zsh-completion - 2.46.3-1.1: normalized package name match | openSUSE Tumbleweed package metadata: nfpm-zsh-completion from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Zsh Completion for nfpm | https://github.com/goreleaser/nfpm
- MacPorts - nfpm: normalized package name match | MacPorts ports tree: sysutils/nfpm/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Scoop - main/nfpm: normalized package name match | Scoop official bucket manifest trees: bucket/nfpm.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1
- winget - goreleaser.nfpm: normalized package name match | Windows Package Manager source index: goreleaser.nfpm from https://cdn.winget.microsoft.com/cache/source.msix


## Related links

- [Package publisher tools](https://www.automicvault.com/pkg/package-publishers/) - Belongs to a package publishing or registry command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [go](https://www.automicvault.com/pkg/brew/go/) - Build dependency declared by Homebrew.
- [yeet](https://www.automicvault.com/pkg/brew/yeet/) - Shares av.db curated category or tags: cli, deb, developer-tools, packaging, rpm.
- [melange](https://www.automicvault.com/pkg/brew/melange/) - Shares av.db curated category or tags: apk, cli, developer-tools, packaging.
- [rpmspectool](https://www.automicvault.com/pkg/brew/rpmspectool/) - Shares av.db curated category or tags: cli, developer-tools, packaging, rpm.
- [abi3audit](https://www.automicvault.com/pkg/brew/abi3audit/) - Shares av.db curated category or tags: cli, developer-tools, packaging.
- [cargo-bundle](https://www.automicvault.com/pkg/brew/cargo-bundle/) - Shares av.db curated category or tags: cli, developer-tools, packaging.
- [charmcraft](https://www.automicvault.com/pkg/brew/charmcraft/) - Shares av.db curated category or tags: cli, developer-tools, packaging.
- [create-dmg](https://www.automicvault.com/pkg/brew/create-dmg/) - Shares av.db curated category or tags: cli, developer-tools, packaging.
- [flit](https://www.automicvault.com/pkg/brew/flit/) - Shares av.db curated category or tags: cli, developer-tools, packaging.

## Combined YAML source

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


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- 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
