Notes for June 18, 2012: To package or not to package?

66 views
Skip to first unread message

Igal Koshevoy

unread,
Jun 19, 2012, 3:39:26 AM6/19/12
to pdxdevops
We had a great turnout tonight and lots of good discussion. Here's some of what we talked about:
  • Michael Stahnke presented his recommendations on packaging, focusing on the following: http://goo.gl/Gu9Dx
  • Miscellaneous package managers:
    • (fpm) "Effing Package Management [...] It helps you build packages quickly (Packages like RPM and DEB formats). [...] In 60 seconds, starting from nothing, I had both an RPM and a .DEB of memcached ready to deploy, and I didn't need to know how to use rpmbuild, rpm specfiles, dh_make, debian control files, etc. Sources: directories, gem, python, pear, rpm, deb, npm. Targets: deb, rpm, solaris, tar, directories." https://github.com/jordansissel/fpm/blob/master/README.md 
    • "EPM is an open source UNIX software and file packaging program that generates distribution archives from a list of files. EPM provides a complete, cross-platform software distribution solution for your applications. ESP generates both native and "portable" script-based distribution packages complete with installation and removal scripts and standard install/uninstall GUIs. The installers can be customized with product logos, "readme" files, and click-wrap licenses as desired." http://www.epmhome.org/
    • "Nix is a purely functional package manager. This means that it can ensure that an upgrade to one package cannot break others, that you can always roll back to previous version, that multiple versions of a package can coexist on the same system, and much more." http://nixos.org/
    • "The Arch Build System is a ports-like system for building and packaging software from source code. [...] Packages in Arch Linux are built using makepkg and a custom build script for each package (known as a PKGBUILD)." https://wiki.archlinux.org/index.php/Arch_Build_System
    • "Portage is a package management system used by Gentoo Linux, based on the concept of ports collections. Gentoo is sometimes referred to as a meta-distribution due to the extreme flexibility of Portage, which makes itoperating-system-independent."http://www.gentoo.org/

  • RPM-related stuff:
    • "Mock is used by the Fedora Build system to populate a chroot environment, which is then used in building a source-RPM (SRPM). It can be used for long-term management of a chroot environment, but generally a chroot is populated (using yum), an SRPM is built in the chroot to generate binary RPMs, and the chroot is then discarded." https://fedorahosted.org/mock/
    • "gem2rpm is a simple utility that transforms rubygems GEM format packages into the equivalent RPM packages." http://fooplanet.com/projects/gem2rpm/
    • "yum-utils - tools for manipulating repositories and extended package management" http://linux.die.net/man/1/yum-utils

  • DEB-related stuff:
  • Ruby-related stuff:
    • "Giving up on Ruby packaging: I have finally reached a decision regarding my involvement in the Debian Ruby packaging efforts. I have decided to stop. This has been a very hard decision to make. I have invested huge amounts of time in that work over the years. I still love the language, and will continue to use it on a daily basis for my own developments. [...] For the record, here are the changes I would have liked to see in the Ruby community." http://www.lucas-nussbaum.net/blog/?p=617
    • "Bundler manages [a Ruby] application's dependencies through its entire life across many machines systematically and repeatably." http://gembundler.com/

  • Git-related stuff:
    • "A successful Git branching model: In this post I present the development model that I’ve introduced for all of my projects (both at work and private) about a year ago, and which has turned out to be very successful. I’ve been meaning to write about it for a while now, but I’ve never really found the time to do so thoroughly, until now. I won’t talk about any of the projects’ details, merely about the branching strategy and release management." http://nvie.com/posts/a-successful-git-branching-model/
    • "A Git Workflow for Agile Teams: An efficient workflow for developers in Agile teams that handles features and bugs while keeping a clean and sane history." http://reinh.com/blog/2009/03/02/a-git-workflow-for-agile-teams.html

  • Misc:
    • "Jenkins is an award-winning application that monitors executions of repeated jobs, such as building a software project or jobs run by cron. Among those things, current Jenkins focuses on the following two jobs: Building/testing software projects continuously [and] Monitoring executions of externally-run jobs." http://jenkins-ci.org/
    • "Capistrano is a utility and framework for executing commands in parallel on multiple remote machines, via SSH. It uses a simple DSL (borrowed in part from Rake) that allows you to define tasks, which may be applied to machines in certain roles. It also supports tunneling connections via some gateway machine to allow operations to be performed behind VPN's and firewalls. Capistrano was originally designed to simplify and automate deployment of web applications to distributed environments, and originally came bundled with a set of tasks designed for deploying Rails applications." https://github.com/capistrano/capistrano
    • "Filesystem Hierarchy Standard: This standard consists of a set of requirements and guidelines for file and directory placement under UNIX-like operating systems. The guidelines are intended to support interoperability of applications, system administration tools, development tools, and scripts as well as greater uniformity of documentation for these systems." http://www.pathname.com/fhs/
-igal

Igal Koshevoy

unread,
Jun 19, 2012, 3:59:55 AM6/19/12
to pdxdevops
PS: Please feel free to post additions, comments and corrections to my notes. Thanks!
Reply all
Reply to author
Forward
0 new messages