nFPM
nfpm.goreleaser.com
What it is
nFPM is a free Go tool for creating DEB, RPM, APK, IPK, Arch Linux, and MSIX software packages. It can be run from the command line or used as a Go library, and the project describes it as a single binary without external runtime dependencies. Package definitions use YAML and can specify metadata, files, dependencies, scripts, and format-specific overrides. Installation options include package managers, prebuilt archives, Docker, Go install, or building from source; documented package managers include Homebrew, Scoop, APT, Yum, Winget, and NPM. GoReleaser can use nFPM to generate and publish Linux packages and Windows MSIX packages. The project lists Linux, macOS, and Windows as target platforms and identifies its license as MIT. The install guide says release artifacts are checksummed and the checksum is signed with cosign; Docker images are also signed with cosign. MSIX support is described as experimental, and symlinks are skipped. The project presents nFPM as an option for users who want package creation without dependencies such as Ruby and tar.
Spec sheet
- Purpose
- nFPM is a Go tool for creating deb, rpm, apk, ipk, Arch Linux, and MSIX packages.Read 8 Oct 2026 · nfpm.goreleaser.com
- Integrations
- GoReleaser can use nFPM to generate and publish Linux packages and Windows MSIX packages.Read 8 Oct 2026 · goreleaser.com
- Support
- The repository directs users with questions or support needs to the GoReleaser community.Read 8 Oct 2026 · github.com
- License
- The repository identifies its license as MIT.Read 8 Oct 2026 · github.com
- Artifact verification
- The install guide says release artifacts are checksummed and the checksum is signed with cosign; Docker images are also signed with cosign.Read 8 Oct 2026 · nfpm.goreleaser.com
- Configuration
- Packages are defined with a YAML configuration file.Read 8 Oct 2026 · nfpm.goreleaser.com
- Install options
- The project documents installation through package managers, prebuilt archives, Docker, Go install, or building from source.Read 8 Oct 2026 · nfpm.goreleaser.com
- Intended use
- The project presents nFPM as an alternative for users who want a simple binary or library without dependencies such as Ruby and tar.Read 8 Oct 2026 · github.com
- MSIX limitation
- The GoReleaser documentation describes MSIX support as experimental and says symlinks are skipped.Read 8 Oct 2026 · goreleaser.com
- Package contents
- Configuration can specify package metadata, files, dependencies, scripts, and format-specific overrides.Read 8 Oct 2026 · nfpm.goreleaser.com
- Runtime
- The project describes nFPM as a single binary with no external runtime dependencies.Read 8 Oct 2026 · nfpm.goreleaser.com
- Security policy
- The GitHub repository links to a security policy.Read 8 Oct 2026 · github.com
- Supported package managers
- Documented installation options include Homebrew, Scoop, APT, Yum, Winget, and NPM.Read 8 Oct 2026 · nfpm.goreleaser.com
- Ways to use
- nFPM can be used as a command-line tool or as a Go library.Read 8 Oct 2026 · nfpm.goreleaser.com
Plans and prices
Strong points and limits
Strong points
- Free, with no paid plans or usage limits stated
- Command-line tool and Go library
- YAML can define metadata, files, dependencies, and scripts
- Single binary without external runtime dependencies
Limits
- MSIX support is experimental
- Symlinks are skipped for MSIX
- Support questions are directed to the GoReleaser community
Who it suits
nFPM suits developers who need to create software packages from a Go command-line tool or library. It may fit teams using GoReleaser to generate Linux or Windows MSIX packages.
Verdict
nFPM offers package creation through a Go tool or library with configurable YAML definitions. Treat MSIX as experimental and account for its symlink limitation if using that format.
Where Specifiction places it
- Release automation tools#8 of 367.8
- Software Packaging Tools#22 of 297.6