Hacker News new | ask | show | jobs
by grosskur 4495 days ago
Packages are great because they simplify automation. Once you've got a package built and uploaded to a repository, you can install it across a large fleet of machines one-line of Chef or Puppet code.

There are some pitfalls, however:

* It can be time-consuming dealing with the arcane details of Debian package metadata or RPM spec files. If you're deploying your own application code, you're likely better off using fpm to generate a package from a directory tree:

https://github.com/jordansissel/fpm

* If you have a complex stack, e.g., a specific version of Ruby and a large number of gem dependencies, you should avoid trying to separate things into individual packages. Just create a single Omnibus-style package that installs everything into a directory in /opt:

https://github.com/opscode/omnibus-ruby

* Maintaining build machines and repository servers takes ongoing effort. Shameless plug: This is why I created Package Lab---a hosted service for building packages and managing repositories. Currently in private beta and would love feedback:

https://packagelab.com/