Automatic way to create deb and rpm packages

Everybody who has tried to find some reliable and easy-to-use guide on packaging will surely nod in understanding when I yell: “I just need a damn command to create a damn package!”. So far I had not found a simple how to and it really bothered me. Perhaps I have not searched enough but after a while you find it pointless to go on and on.

But, I have good news. Thanks to the wonderful gentleman Jordan Sissel there is hope after all. This guy created a fantastic command-line utility that can build various kinds of packages using various kinds of sources! The tool is called fpm and it’s hosted on GitHub. The simplest way to get it is through Ruby gems:

gem install fpm

Creating packages then becomes a quick and easy task. For example here is the command to create a .deb package from Kippo-Graph’s sources, using most of the optional arguments:

fpm -s dir -t deb -n kippo-graph -d php5 -d php5-gd -d php5-mysql \
-a all -m "BruteForce Lab <[email protected]>" \
--description "Kippo-Graph is a full featured script to visualize statistics \
from a Kippo SSH honeypot." --vendor "BruteForce Lab" \
--url -v 0.7.2 --category misc \
--prefix /var/www/kippo-graph/ ./

And then you can manage the application (jn the above case just the directory that was created) through Synaptic:

How cool is that? 😎

1 comment

    • Rodrigo Araujo on October 4, 2016 at 4:21 PM
    • Reply

    Hi! It seems what I’ve been looking for, but I am still not sure how to do that.
    My goal is to easily create .rpm files.
    FPM is capable of generating a package from a github address, for example:
    Thank you.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Read previous post:
First try with DD-WRT

After seeing a relevant article by @giannoug written for deltaHacker magazine, I decided to finally give the whole upgrade-your-router-for-free business...