Thoughts on Software Packaging

Outline for this post.

  • Introduction
  • Early experiences with software (VIC-20, DOS, Windows 3.1)
  • Linux packaging (Slackware days, how apt was ahead of its time, Red Hat up2date, RPM hell)
  • Windows 9x/XP software (DLL hell, no dependency handling, everything’s independent and can overwrite each other)
  • Linux packaging in the 2000s (yum, slapt-get, apt-rpm, gentoo portage)
  • BSD packaging https://klarasystems.com/articles/a-quick-look-at-the-history-of-package-management-on-freebsd/
  • Modern Linux packaging (dnf, pacman, apt)
  • Containers and using them vs. curl | sudo bash, arrgh
  • Flatpak and snap
  • Briefly go over language dependency installation systems (pip, CPAN, golang, node.js, rust crates)
  • Conclusion