[buug] tired of redhat, and i want something new to play with

Nick Moffitt nick at zork.net
Sun May 4 20:58:52 PDT 2003


begin  Rick Moen Lives Three Hours from Nowhere  quotation:
> _LSB_ qualifies as a "standard" in the sense of the term contemplated.
> RPM is merely a file format, variously implemented.

	In one regard, debian's package format is somewhat more
predictably engineered, such that one can claim that it's a more
"standard" system.

	Basically any binary package format consists of two things: a
filesystem archive (the files to be installed, installation clean-up
scripts to be run, etc) and a collection of metadata (dependency
lists, version info, maintainer e-mail etc.).

	In the case of dpkg, the format is a POSIX-standard "ar"
archive of the sort used for static libraries.  This "ar" file has two
tar files inside of it: control.tar.gz and data.tar.gz.  The files
inside each of these are all shell scripts, perl scripts, files to be
installed, etc.  You could unpack and install a debian binary package
on any Linux system using standard Unix tools.

	In fact, most of the arguments about which packaging tool is
older (rpm or dpkg) are often resolved with the explanation "When rpm
was written, dpkg was still a shell script".

	RPM on the other hand, as a file format, takes a different
approach.  Basically it's a cpio archive with a big binary dump of a C
struct on the front.  You basically have to yank values out based on
their position as though it were a low-level media format or
something.

	But here's the clincher:  this data structure changes in size
and position of its members between revisions of the rpm format on Red
Hat alone, and companies like SuSE have packaged and released rpm
tools with metadata structs that differ from any and all Red Hat RPMs.
That is to say, RPM is *not* a standard even as an on-disk file
format.

	What the LSB does is not just standardize on RPM (which only
means that the rpm installer tool has to be present -- it doesn't mean
that the whole OS needs to *use* RPM for its packages), it
specifically defines a particular *version* of the rpm suite and file
format.  This means that Red Hat likely has to package *two* copies of
the rpm tool: one for its latest-and-greatest hacked up format, and
one for the LSB.

-- 

end



More information about the buug mailing list