Subject: Re: package questions
To: Rohan Nicholls , <netbsd-help@netbsd.org>
From: Richard Rauch <rauch@rice.edu>
List: netbsd-help
Date: 05/06/2002 19:13:23
(Re. http://mail-index.netbsd.org/netbsd-help/2002/05/06/0003.html )

Since Jeremy has already answered once, I'll try to avoid repeating him.
(But I do want to add a little more.)  However, I'd like to stress that
from a sufficiently ``user'' point of view, it doesn't matter at all
whether you use pkgsrc or binary packages, once you have the packages
installed and configured to your liking.


First, how different the two (binary packages vs. pkgsrc) are depends on
your point of view.  Binary packages are just the output of pkgsrc,
collected for quicker installation.  But because they are precompiled,
there are various pkgsrc options that get ``built into'' binary packages.
E.g., default paper size: If you built from pkgsrc, you could set the
default paper size and (in theory) all packages that care about paper size
should respect this default setting.  If you install from binary packages,
you may have to find/configure each package that cares about paper size.

Binary packages also (last I saw) seemed to be pickier about version
dependancies.  While pkgsrc can work with ranges of versions, binary
packages seem to want exact version matches.  (This is a problem if the
only version of package A was built requiring version 1.0 of package B,
while the only version of package C requires version 1.10 of package B.
Something like this was the case with the GIMP, the gtk library, and a
couple of other gtk-using applications when I last used binary packages.
It's why I stopped using binary packages and switched to pkgsrc.)


Secondly, there's nothing intimidating about using pkgsrc.  Suppose that
you have pkgsrc in /usr/pkgsrc, and want to install the EMACS editor:

 cd /usr/pkgsrc/editors/emacs
 make update
 (wait while the system fetches, patches, configures, builds, installs,
  and cleans-up-after-installing EMACS; update will also use *some*
  sense in updating packages that EMACS depends upon, or which depend
  upon EMACS.)

The key ideas are: cd into the appropriate directory, and type ``make
update''.  (There are other ``make'' targets besides ``update'', for
pkgsrc.  But ``make update'' is *almost*always* exactly what I want.)

You should have a live internet connection so that pkgsrc can fetch the
packages (you can, with a little more typing, pre-fetch all needed files
in one batch, then disconnect from the net to do the actual build).  You
needn't know anything about C or C++ for this.  (Unless, of course, a
package fails to build...(^& It doesn't happen often, but it does happen.)


Of course, nothing is perfect.  Due to luck, as well as variations in
preferences/style, etc., people develop their own preferences.  I rely
upon pkgsrc, but others don't.


  ``I probably don't know what I'm talking about.'' --rauch@math.rice.edu