DEB compared with RPM
Posted Feb 21, 2007 18:45 UTC (Wed) by mheily
Parent article: ESR's goodbye note
I have worked with both formats, and IMHO, DEB is a vastly superior to RPM as a packaging format. DEB is easier to use, better documented, more modular and extensible than RPM, and uses standard tools (/usr/bin/make and shell scripts) instead of a custom tool (/usr/bin/rpm). There is no limit to what you can do with a combination of a Makefile and shell scripts.
An RPM spec file is basically comprised of four things: macros, tags, a list of files, and build/install/uninstall scripts. All of these things are jammed together in a single file that becomes bloated and hard to read -- especially when a lot of macros are used. The spec file is processed by a single, monolithic tool (/usr/bin/rpm) to produce a binary package.
By contrast, all Debian packaging information is kept in small, single-purpose files under the debian/ directory. The entire build process is controlled by a Makefile named debian/rules. The Makefile calls a number of small, single-purpose shell scripts provided by the 'debhelper' package to do the actual work. For example, if the package needs to install an entry in the system crontab, you add a line to the Makefile that calls the dh_crontab script, which merges the contents of debian/cron.d file into the system cron.d directory.
I'm not aware of an equivalent to debhelper in RPM, which means that packagers have to roll their own system-dependent scripts to do all the work that debhelper does for you.
to post comments)