Subject: two questions: upgrading meta packages, pkg database
To: None <hubert.feyrer@informatik.fh-regensburg.de>
From: Rainer J.H. Brandt <rjhb@bb-c.de>
List: tech-pkg
Date: 05/20/2001 18:37:47
Hi Hubert, hello everybody,

I asked:
> > 1.  I want to update the gnome package.  Although I installed it via
> >     'pkg_add gnome', the commands 'pkg_delete gnome' and 'pkg_info gnome' tell
> >     me that the system doesn't know anything about such a package.  I understand
> >     that the gnome package is a wrapper for a number of packages which now have
> >     to be updated.  However, lots of these packages are being required by lots
> >     of other packages, and I'm afraid that - especially because of dependencies
> >     regarding libraries - other software will break if I just replace them.
> >     Even if I just tried that, I believe it will be a lot of work.
> > 
> >     What is the preferred upgrade method for "packages" like gnome ?
and Hubert said:
> deinstall recursively, then rebuild with new libs etc.
> I recomment using precompiled binary pkgs where available.

Just for clarification:
I did use and talk about precompiled binary packages.

So, essentially you suggest:

1. Analyze your system: find all packages that depend on any of the packages
   installed via 'pkg_add gnome'.  That can be quite a lot - although the actual
   set can be hard to find:  For the precompiled gnome-1.4.0.1 for i386,
   pkg_info tells me that 125 packages are required, among them for example:
   Four times libxml, python, perl, ghostscript, Mesa, four times glib,
   six times gnome-libs.  Figure out which ones were really installed when
   gnome was installed, then try to figure out whether a new version of gnome
   depends on newer versions of Perl or Python, for instance (I doubt it, but
   you never know...)  Then find the packages that depend on this set of
   packages, and remove them if you are afraid that they will not work with the
   new gnome.

2. Recursively repeat these steps for all packages that you deleted.

3. Install new packages.

I'm wondering whether wiping the disk and reinstalling NetBSD might be safer.

Don't you think that

<orcrist:/home/rjhb,100# pkg_add gnome
  ... lots of output, everything successful ...
<orcrist:/home/rjhb,101# pkg_info gnome
pkg_info: can't find package `gnome' installed or in a file!

indicates a bug?  or may at least cause confusion?

Sorry if I sound a bit harsh, but I believe the package system should make
life easier for novice users, and it should make systems safe enough to be
used in production environments that require reliable operational procedures.
I would be very happy to find more NetBSD machines in such environments, and
software management is an important topic to consider.


I further asked:
> > 2.  I would like to audit my system with respect to the files maintained by the
> >     package system, just like I do it on my Solaris machines.  Under that
> >     operating system, the software database tells me about the file ownerships
> >     and permissions, and it has an opinion about whether a file's contents
> >     should be expected to change.
> > 
> >     Am I correct if I believe that the NetBSD package system does not maintain
> >     that information?  Do plans exist to improve the system so that it will
> >     maintain that data in the future?

and Hubert said:

> We do contain MD5 checksums of all files installed. You can do a check of
> that with:
> 
> 	pkg_admin check
> 
> for all packages or
> 
> 	pkg_admin check foo-1.8
> 
> for a single pkg.

Yes, I was aware of that.  But that checks the files' contents, and does not
look at ownerships and permissions, does it?

And if a file's contents is supposed to change over time, and does change, is
that an error that pkg_admin should complain about?

Finally, I asked:

> > 3.  Which document should I have read in order to save you from being bothered
> >     by my questions?

And Hubert answered:

> 1. Manpages: pkg_add(8), pkg_delete(8), pkg_info(8), pkg_create(8),
>    pkg_admin(8))
> 2. pkgsrc/Packages.txt
> 3. packages(7)
> 4. The list archive
> 5. bsd.pkg.mk & pkg_* source :-)

Before posting, I had read 1, 2, 3, and parts of 4.
I believe the documents do not contain answers to my questions.

Thanks for your time,
Rainer

-- 
Rainer J. H. Brandt <rjhb@bb-c.de>
Brandt & Brandt Computer GmbH
phone:  +49 2441 779891
mobile: +49 172 9593205