fpm
fpm.readthedocs.io
What it is
fpm is a free, open-source command-line tool for creating packages for existing package systems. It accepts sources such as local directories, npm packages, CPAN modules, Python packages, Ruby gems, and existing RPM or Debian packages. Outputs include Debian, RPM, FreeBSD, macOS, Arch Linux, Alpine, Solaris, Snap, tar, zip, shell archive, and other listed formats. fpm can convert an RPM package to Debian, remove files, change metadata or dependencies, and strip pre, post, or maintainer scripts. It is written in Ruby and installed with `gem install fpm`; Ruby must be installed first, and some formats need additional system tools. Docker is documented as a way to run fpm without installing those tools locally. Building an osxpkg package requires macOS. The tool supports Linux, macOS, and self-hosted use. Documentation is described as a work in progress and not extensive. The listed release is version 1.18.0, released August 26, 2026. The license is identified as MIT-like.
Spec sheet
- Purpose
- fpm is a command-line tool for creating packages for existing package systems with less effort.Read 4 Oct 2026 · fpm.readthedocs.io
- Support
- The documentation invites users to report problems through the project issue tracker.Read 4 Oct 2026 · fpm.readthedocs.io
- License
- The project’s RubyGems listing identifies the license as MIT-like.Read 4 Oct 2026 · rubygems.org
- Current release
- The project documentation lists version 1.18.0 as released on August 26, 2026.Read 4 Oct 2026 · fpm.readthedocs.io
- Docker
- The documentation says Docker can avoid installing fpm’s many underlying system tools locally and describes running fpm in a container.Read 4 Oct 2026 · fpm.readthedocs.io
- Documentation status
- The documentation describes itself as a work in progress and says it is not extensive.Read 4 Oct 2026 · fpm.readthedocs.io
- Installation
- fpm is written in Ruby and the installation guide instructs users to install it with `gem install fpm`.Read 4 Oct 2026 · fpm.readthedocs.io
- macOS limitation
- The installation guide says building an osxpkg package requires running macOS.Read 4 Oct 2026 · fpm.readthedocs.io
- Package conversion
- fpm can convert an existing RPM package to a Debian package.Read 4 Oct 2026 · fpm.readthedocs.io
- Package inputs
- Examples and documentation cover inputs such as local directories, npm packages, CPAN modules, Python packages, Ruby gems, and existing RPM or Debian packages.Read 4 Oct 2026 · fpm.readthedocs.io
- Package modification
- The project README says fpm can modify existing packages by removing files or changing metadata and dependencies.Read 4 Oct 2026 · github.com
- Package scripts
- The project README says fpm can strip pre, post, and maintainer scripts from packages.Read 4 Oct 2026 · github.com
- Package targets
- The documentation lists targets including Debian, RPM, FreeBSD, macOS, Arch Linux, Alpine, Solaris, Snap, tar, zip, and shell archive packages.Read 4 Oct 2026 · fpm.readthedocs.io
- Prerequisites
- Ruby must be installed before installing fpm, and some package formats require additional system tools.Read 4 Oct 2026 · fpm.readthedocs.io
Plans and prices
Strong points and limits
Strong points
- Free and open source
- Accepts many package input types
- Converts RPM packages to Debian
- Can modify metadata and dependencies
- Docker can isolate system tools
Limits
- Ruby is required for installation
- Some formats need additional system tools
- osxpkg builds require macOS
- Documentation is not extensive
Who it suits
fpm suits developers and release engineers who package software for several operating systems or convert existing packages. It is especially useful for command-line, self-hosted workflows where Ruby and required system tools are available.
Verdict
fpm reduces command-line packaging work across many package systems and input types. Its free price is clear, but installation prerequisites and format-specific tools remain part of the setup.
Where Specifiction places it
- Software Packaging Tools#13 of 297.8