FPM
Easy packaging of application and files.
Installation
Easy and plain installation via gem. It's currently not in the Fedora repositories, but widely distributet in Gem.
gem install fpm
Usage
General
fpm -s <source type> -t <target type> [options]
Package source types:
- dir - make a package from directories or files
- rpm - make a package from an RPM
- gem - make a package from a Rubygem
- python - make a package from a python module (via easy_install or local
setup.py
) - empty - make a package without any files (useful for meta packages and other things)
- tar - make a package out of the contents of a tarball
- deb - make a package from an existing deb
Target package types:
- rpm - produce an RPM
- deb - produce a .deb
- solaris - produce a solaris package (for use with pkgadd). NB Solaris is not yet implemented in the new API - creation of SVR4 packages currently requires use of version 0.3.x
- puppet - produce a puppet module (we should have a closer look at this).
Parameter
- '-n': Name
- '-a': Architecture (all = noarch)
- '-v': Version, -v 1.0
Gems
For some Puppet stuff I had to install automated some GEM packages. Locally there wasn't any gem store available and no time to set one up. So: FPM to the rescue:
sudo su -
fpm -s gem -t rpm --rpm-user root -m "Me <nerd@micronerds.org>" passenger
fpm -s gem -t rpm --rpm-user root -m "Me <nerd@micronerds.org>" rack
fpm -s gem -t rpm --rpm-user root -m "Me <nerd@micronerds.org>" daemon_controller
This left me three noarch rpm packages I could install on a CentOS 7 system.
The important part here was to run the fpm
command as root user. Whenever I tried to create the RPM package as 'me', the files ended up in /home/me/.rvm/.....
and where not available for the puppet root process to use later on.