FPM
The Swiss Army knife of the casual packager
- Emmanuel Bastien
- September 2011
- Ruby Drinkup Sophia
space, → | next slide |
← | previous slide |
d | debug mode |
## <ret> | go to slide # |
c | table of contents (vi) |
f | toggle footer |
r | reload slides |
z | toggle help (this) |
What Puppet typically handles for you:
FPM puts a native package blanket on top of:
It'll make it deployable by your system packages manager but won't fool a maintainer.
sudo gem install fpm
mkdir -p ~/tmp/gems
cd ~/tmp
gem install --no-ri --no-rdoc \
--install-dir ~/tmp/gems \
jekyll compass rdiscount
find ~/tmp/gems/cache/ -name "*.gem" | xargs -rn1 \
fpm -s gem -t deb
mkdir -p ~/tmp/opt/rivierarb
wget -O - http://github.com/rivierarb/rivierarb/tarball/gh-pages|\
tar -xz --strip-components=1 -C ~/tmp/opt/rivierarb
fpm -s dir -t deb -n rivierarb -v 0.2.0 -a all \
-d "rubygem-jekyll (>= 0.11.0)" \
-d "rubygem-compass (>= 0.11.5)" \
-d "rubygem-rdiscount (>= 1.6.8)" \
./opt/rivierarb
$ ls -1 *.deb
rivierarb_0.2.0_all.deb
rubygem-albino_1.3.3_all.deb
rubygem-chunky-png_1.2.1_all.deb
rubygem-classifier_1.3.3_all.deb
rubygem-compass_0.11.5_all.deb
rubygem-directory-watcher_1.4.1_all.deb
rubygem-fast-stemmer_1.0.0_amd64.deb
rubygem-fssm_0.2.7_all.deb
rubygem-jekyll_0.11.0_all.deb
rubygem-kramdown_0.13.3_all.deb
rubygem-liquid_2.2.2_all.deb
rubygem-maruku_0.6.0_all.deb
rubygem-posix-spawn_0.3.6_amd64.deb
rubygem-rdiscount_1.6.8_amd64.deb
rubygem-sass_3.1.7_all.deb
rubygem-syntax_1.0.0_all.deb
Next steps:
package { 'rivierarb': ensure => '0.2.0' }
This work is licensed under the Creative Commons Attribution 3.0 Unported License.