Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Oct 1996 04:11:09 +0200 (MET DST)
From:      erb@inss1.etec.uni-karlsruhe.de (Olaf Erb)
To:        freebsd-ports@freebsd.org
Subject:   FreeBSD pkg system vs Debian dpkg
Message-ID:  <199610240211.EAA17207@insl2.etec.uni-karlsruhe.de>

next in thread | raw e-mail | index | archive | help
Hi,

in a discussion at a German Unix Newsgroup I explained some problems
I ran into with the FreeBSD ports system, and how it compares with
Debian Linux (the discussion is- as usual- Linux vs. FreeBSD ;).

J. Wunsch told me my thoughts may be interesting for the ports developers,
so here they are, roughly translated from my German posting:

Ports are really helpful, I like them very much. But the FreeBSD pkg system
lacks some (in my opinion) very important things, compared to the 
Debian dpkg system, which I've been using for one year or so with a big
pleasure- the pkg system, not Linux itself. Then I nuked the Linux stuff
(not only, but mainly because of it's really annoying kernelupdate 
frequency, lots of bugs that never got fixed and the libc/gcc/binutils/
whatever chaos) and installed FreeBSD, so I think I can now compare those
two systems a little now.

- ports dependencies are a little simple- there's a check if needed libs
  (e.g. tcl/tk/perl etc.) are installed, if not, they're installed, too.
  But pkg_add isn't checking if an older version of the to-be-installed 
  package exists. You're ending up with many different pkg entries if you
  don't take care about this.
  Deleting the old ones (what a fool I am, I did this the first time I 
  used the pkg stuff- ending up with no zsh ;) deletes the same files now 
  owned by the new versions. Installing a newer version of a package makes 
  the database inconsistent, removing the old ones with pkg_delete, too.

  There should be really a check if the old version should be 
  replaced/removed, maybe a message about leftover files or so..

- another -imho- really important thing is a check if files to be installed
  do already exist (or if owned by another package). I nuked mtools with 
  installing pine (/usr/local/bin/mtest which is a symlink to mtools, so
  mtools was overwritten and is now pines' mtest program ;).

Debian Linux "dpkg" takes care of all this. It checks dependencies,
removes old versions if needed, complains about missing stuff etc.
("can't remove blah-lib because foobaz, blah, fasel need it").

Its "deselect" tool even checks if new versions of packages are available
via ftp and fetches/installes them. Only binary packages, though.
The problem with overwriting programs someone manually installed doesn't
exist, too, because all .deb packages are integrated into the base system
(which I personally don't like). /usr/local is complely untouched.

But it's missing some (important, I think) FreeBSD-ports features: 
directly installing/fetching sources  with make all install, 
a make world, updating the sourcetree (which sourcetree?) via CTM/SUP. 
You can create binary packages for installing later, but not with a 
single make.

I hope this wasn't too boring, just some thoughts that could help to
improve the ports collection to withstand the Linux crowd ;-)

I'd be very interested what you think about all this, it's just my view
from about three or four months experience with FreeBSD (-current).

Olaf
-- 
There is no such thing as a problem without a gift for you in its hands. 
You seek problems because you need their gifts. -- Richard Bach, Illusions 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199610240211.EAA17207>