Subject: Re: everything is a dependency and preventing removal
To: None <tech-pkg@NetBSD.ORG>
From: MLH <MLH@goathill.org>
List: tech-pkg
Date: 01/11/2003 01:20:33
On 10 Jan 2003 14:50:03 -0600, Greg A. Woods wrote:
> [ On Thursday, January 9, 2003 at 12:20:32 (-0800), Jeremy C. Reed wrote: ]
>> Can anyone share an ideas, experiences or examples of other operating
>> system packaging tools for preventing accidental removal of important
>> packages?
>> 
>> For example, pkg_add may need tar, maybe gzip libs, maybe ftp, and maybe
>> some basic shell utils.
> 
> All I can say is that the way pkgsrc iteslf does this now (by not
> registering the installed package) is completely bogus.
> 
>> I guess a few packages could use some identifier indicating that they
>> should never be permanently removed, but only updated.
> 
> Until pkg_install acquires some better way to deal with obsoleted files
> (i.e. other than hacks possible now with INSTALL scripts and whatnot)
> there's no way to do proper "updates" of packages -- only removes and
> adds.
> 
> Ideally package updates should be easily revertable too -- especially if
> the update breaks half way through.  Such a revert operation might have
> to be done by hand for some packages of course....

The last few days I have been experimenting with pkg_comp/pkg_chk
for doing this sort of thing, and it almost works. There are a few
hitches here and there still, but between them, they seem to do a
pretty good job of attempting an update without trashing your
running environment.  pkg_comp doesn't quite create the mk.conf
file the way I understand it is supposed to ('DEPENDS_TARGET=package'
is not the default as stated and EXTRAMK doesn't appear to work).
The last missing piece, as I see it, is to then be able to move
the newly-created binary packages out into the real environment so
that pkg_chk could install them.

Or is there another way this is supposed to be done?

It would be nice to have some kind of tutorial for these to show
how to set up and run a chroot pkg update environment, especially
since I seem to be missing something.

Or am I completely off base here?