Upgrade to Pro — share decks privately, control downloads, hide ads and more …

fpm: love packaging!

fpm: love packaging!

For any given platform, you're likely to see a special reinvention of software packaging and distribution. OS distributors do it: Red Hat's rpm, Debian's deb, FreeBSD's pkg_add and friends, Solaris' SRV4 packages. Software platforms do it: ruby has rubygems, python has eggs, node has npm, etc. The most maddening part is that most of these things are solving the same problem but are totally incompatible!

Incompatible tooling hurts everyone, but it gets worse.

High barriers are built and called "best practices" or "policy" that slow or discourage new and existing users from making good use of packaging tools. With high knowledge barriers made worse by incompatibilities in naming things (such as 'iteration' vs 'release' vs 'revision' all meaning the same thing), I certainly feel heavily discouraged in learning packaging tools. Once you've invested in, say, redhat's packaging systems, you're effectively vendor-locked because the cost of learning an alternative system is so high.

With fpm, I set out to solve much of these pains. Nearly 3 years old, fpm has quickly become a strong, community-driven project to help many folks build packages without needing to suffer high knowledge barriers and without sacrificing flexibility.

fpm isn't a new package format, it's just a new and simpler tool for building packages or converting packages from one type to another. At time of writing, fpm currently supports 14 different package formats (deb, rpm, cpan, rubygems, python pypi, solaris srv4, osx, etc).

This talk will introduce the problems with packaging as well as how fpm exists to solve them. It will also cover lots of neat tricks the community has found for doing cool and useful things with fpm.

Elasticsearch Inc

February 23, 2014
Tweet

More Decks by Elasticsearch Inc

Other Decks in Technology

Transcript

  1. fpm

  2. Package formats • RPM • Deb • Ruby gems •

    Python libraries • PHP Pear • Node NPM • Perl CPAN • Solaris SRV4 • Tar • Zip
  3. fpm? • Almost no learning curve. • Make packages in

    seconds. • Experience happiness. • Open Source MIT-style license
  4. fpm history commit 8035419385480dfdf2bcde4e7d751dac23a0b254 Author: Jordan Sissel <[email protected]> Date: Mon

    Jan 3 13:10:15 2011 -0800 ! - Start prototyping generic package creator.
  5. fpm

  6. fpm

  7. fpm

  8. "FPM isn't just a handy tool at DreamHost, it's a

    necessity. It gives our engineering team the flexibility and power to more efficiently manage software installations across our infrastructure. From OpenStack to Logstash to Pecan web frameworks, we couldn't deploy anything easily without FPM." ! Brett Gailey! Systems Engineering Manager