[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: RPM (Was Re: Deity project schedule problems)



> Well, I think Erik is pretty responsible, but as long as most of the
> developers still like dpkg/dselect, I'm willing to stay with it.

I've got nothing against RPM, Red Hat, or Erik.  But I really think
you are selling dpkg short.  So here's a short little essay on why
I prefer dpkg to RPM:

dpkg is a completely different philosophy than RPM.  I find dpkg to be
more Unixish than RPM - it leaves plenty of room for scripts and
is pretty 'loose'.  The developers have immense amounts of flexibility
in how the packages are built, installed, configured, etc.  It's very
extendable.  Of course, there is a price -- there is potentially more
inconsistency in the packages and in the system.

RPM, in comparison, is quite rigid and restrictive.  This is good for
Red Hat, since they are a company putting together a product in a 
top-down manner.  Any flexibility they need can be designed into the
packaging system on a case-by-case basis.  As a result, they can
deliver an extremely consistent set of packages.   They can do this
since have a conventional authoritarian organization (a business). 

The Debian system is being developed in a bottom-up fashion, so the
'centralized' nature of RPM is totally inappropriate.  dpkg encourages
developers outside of the core dpkg developers to innovate.  That's
extremely important since we don't all work in the same office.  Plus,
nobody is getting paid for this -- the lack of restrictions is quite
nice when you have hundreds of people 'doing their own thing'.

Some examples of packages that we've developed that probably would never
have happened if we used RPM:

  dpkg-ftp, dpkg-mountable, dpkg-cert, dpkg-perl, dpkg-python, 
  debmake, debhelper, alien, dftp, dpkg-repack, dpkg-cross, menu, 
  fakeroot, suidmanager, cvs-buildpackage, kernel-package 
        + I probably missed a few.

There's a parallel: firewall design.  You can have a restrictive firewall
policy (everything is denied, unless explicitly allowed), or you can have
a permissive firewall (everything is allowed, unless explicitly allowed).
The restrictive policy has less chance of failure, but incurs a much
higher management cost, and aggravates the users who want to do something
outside of the norm.  The permissive policy is easier, has lower management
costs, and aggravates the users less.  But it is much more open to
failure.

Both sets of policies are equally valid - depending on the needs
of the organization.  I would argue that the RPM philosophy embodies the
"restrictive" policy, whereas dpkg embodies the "permissive" policy.
Red Hat needs a controlled, restrictive packaging system because they
have committed $$$ and have to control the amount of risk they can
expose themselves too.  Debian works well with a looser, permissive 
packaging system since we don't have a lot on the line, and can afford
to experiment.

Anyways, I feel dpkg and it's related innovative packages represent the 
'heart and soul' of the Debian project.  Sure, dpkg isn't perfect, or
even all that polished - but it is an extremely flexible and pliable
system.  We're limited more by the policies we choose than by any
technical limitations.  I like where Debian has positioned itself
(more innovation-oriented -- less product-oriented), and hope that 
doesn't change.

Cheers,

 - Jim



Attachment: pgp3uyDivrCCw.pgp
Description: PGP signature


Reply to: