Slamming-Your-Head-Into-Keyboard-HOWTO: Packaging Erlang Applications
Erlang developers are lucky to have a solid VM, great community, and great tools for building, testing, and debugging their applications. When that application is written and tested, and you as a developer want to make it easy to install everywhere, that is where the *easy* option cannot be found. Few people know how to write a proper .spec file or make deb files and I argue that few people *need* to know about it.
Erlang developers shouldn’t have to know about debuild, rpmbuild, pkgsrc, pkg_create, or pkg_add. They shouldn’t need to read through tomes like Maximum RPM (409 pages), Debian New Maintainers’ Guide + Debian Policy (160 pages), or The pkgsrc Guide (154 pages). If you know how pkg_add on FreeBSD is different than pkg_add on SmartOS you are experiencing way too much pain. These are all problems we have at Basho when shipping Riak and Riak CS to customers. This talk covers our solution to this problem with node_package, a universal packaging tool for Erlang applications.
Talk objectives: Packaging by its very nature is ugly and complicated and I would like to show how this pain can be at least sidestepped by using node_package to worry about packing policy and conventions. I’d like to show how we make packages for debian, ubuntu, fedora, rhel, smartos, freebsd, solaris, and osx in one command. Most importantly I’d like to discuss how we wrote node_package, what decisions were made in its creation, and where we need to improve with help from other application developers.
Target audience: Erlang developers who want their erlang software to be installed and used.
Jared Morrow Riak and RiakCS Committer
Jared Morrow started his career as an avionics engineer when he graduated from college, around the time of the dotcom explosion when no one was looking for software people. After learning how to make hardware that never fails for aircrafts, he decided to try his hand at writing software again. He spent about 9 years writing embedded C/C++ software for defense and enterprise customers. He finally saw the light, got interested in functional languages, joined Basho and has been getting his mind blown ever since. He focuses on tools, packaging, testing, and anything else that makes Riak and RiakCS better products.