Easy packaging of application and files.
Easy and plain installation via gem. It's currently not in the Fedora repositories, but widely distributet in Gem.
$ gem install fpm
$ 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
- 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).
- '-n': Name
- '-a': Architecture (all = noarch)
- '-v': Version, -v 1.0
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 - $ root> fpm -s gem -t rpm --rpm-user root -m "Me <firstname.lastname@example.org>" passenger $ root> fpm -s gem -t rpm --rpm-user root -m "Me <email@example.com>" rack $ root> fpm -s gem -t rpm --rpm-user root -m "Me <firstname.lastname@example.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.