Skip to content
SPECIFICTION
Get listed

fpm

fpm.readthedocs.io

Free plan macOSLinuxSelf-hosted

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

fpm Free Command-line package building and conversion; some output formats require optional system tools Read 4 Oct 2026 · fpm.readthedocs.io

Every fpm plan and price →

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

Alternatives to fpmAll alternatives →