Subject: Re: Updating packages
To: Steven M. Bellovin <smb@cs.columbia.edu>
From: Louis Guillaume <lguillaume@berklee.edu>
List: pkgsrc-users
Date: 04/28/2007 13:20:26
Steven M. Bellovin wrote:
> On Thu, 14 Dec 2006 12:42:01 -0500
> Trey Sizemore <trey@thesizemores.net> wrote:
> 
>> On Wed, 13 Dec 2006 14:40:15 -0600 (CST)
>> "Jeremy C. Reed" <reed@reedmedia.net> wrote:
>>
>>> Since this question is so frequently asked, let's summarize every 
>>> technique.
>>>
>>> I started http://wiki.netbsd.se/index.php/How_to_upgrade_packages
>>>
>>> Please add to it. Please add command line examples. Please point to 
>>> outside docs for further information.
>>>
>>> Then when asked again we can point users to it!
>> I'll be reading through this in depth this afternoon.  My use-case is
>> pretty straightforward in that I have packages installed from
>> pkgsrc2006Q3 (really just bash and the gnome & kde meta-pkgs).  I want
>> to replace '2006Q3' with 'current' and then update gnome, kde, and
>> bash.
>>
>> This should be a good exercise as there are numerous packages and
>> associated dependencies that comprise these 2 meta-pkgs.  So I don't
>> know if it will be as simple as updating the meta-pkgs (sadly I doubt
>> it) or if each package will need to be individually updated in a
>> particular order.
>>
> 
> I strongly suspect that the easiest thing is one of two paths:
> 
> 	1) build those three packages in chroot via pkg_comp,
> 	getting a complete clean set of prerequisites.  Then delete
> 	everything, go to your package binary directory, and do
> 	pkg_add of bash, kde3, and gnome.
> 
> 	2) Use 'lintpkgsrc -i' to find out what's out of date,
> 	then use pkgdepgraph to construct the delete and build
> 	lists.
> 
> kde and gnome tend to drag in the immediate world, most of which will
> be out of date.
> 
> 		--Steve Bellovin, http://www.cs.columbia.edu/~smb


I second this technique. It's the best way I have found.

Recently (pkgsrc-2007Q1) I have found that, after pkg_comp is done and
everything looks good in the chroot environment, pkg_chk with the `-b'
option seems to work well; meaning you don't have to remove everything
(or anything). Usually if anything is missing, they are reported by
pkg_chk and you can just pkg_add them from the newly built binaries.

Louis