Date: Sat, 09 May 2009 20:52:53 +0200 From: Dominic Fandrey <kamikaze@bsdforen.de> To: "Alexey V. Degtyarev" <alexey@renatasystems.org> Cc: Boris Samorodov <bsam@ipt.ru>, freebsd-ports@freebsd.org Subject: Re: binary package maintenance tool Message-ID: <4A05D105.1060401@bsdforen.de> In-Reply-To: <20090504113919.GC93445@hs-4.renatasystems.org> References: <49FACED3.2070009@bsdforen.de> <89135507@bb.ipt.ru> <20090504113919.GC93445@hs-4.renatasystems.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Alexey V. Degtyarev wrote: >>> The port sysutils/bsdadminscripts has just been updated to >>> version 6.0, which features pkg_upgrade, a binary only >>> package maintenance tool. >>> It makes no use of the ports tree, so unlike other build >>> oriented tools, you do not need a copy of the ports tree >>> to keep your packages up to date. >>> It only requires an INDEX file from pointyhead or your >>> personal Tinderbox. >> Great! T've done some tests at my home machine and I really >> like this tool. I was deaming for it for a long time. And >> it works much faster than "portupgrade -PP". > > pkg_upgrade works very good for me too, except one thing: > > Assume package pkg-1.1 installed on the system and is going to upgrade. > The pkg-1.2 version of package requires a little bit more packages that > required by pkg-1.1: + a new one package newpkg-1.1 for example. After > pkg_upgrade upgrades package `pkg', there is no newpkg-1.1 installed on > the system and there is a error occured while updating. Here is the > illustration with some names screened: > > $ export PACKAGESITE=http://some.path.to/packages/ > $ pkg_upgrade -na > Update <pkg-1.1> to <pkg-1.2>(nice/pkg) > $ pkg_upgrade -a > /usr/ports/packages/All/pkg-1.2.tbz 100% of 3537 B 5464 kBps > ===> Update <pkg-1.1> to <pkg-1.2> > (nice/pkg) > pkg_add: could not find package newpkg-1.1 (proceeding anyway) > pkg_add: can't open dependency file '/var/db/pkg/newpkg-1.1/+REQUIRED_BY'! > dependency registration is incomplete > => Update <pkg-1.1> to <pkg-1.2> > (nice/pkg) succeeded > $ pkg_info -Ex newpkg > $ pkg_info -Ex pkg > pkg-1.2 > > I think that pkg_upgrade should respect a new package's dependency list > and pre-fetch all the new dependencies before pkg_add. > > This means that the missing dependency is not listed in the index and hence not available for download or the index file provided by pointyhead is simply broken. Because pkg_upgrade does in deed download all dependencies (that are also listed in the index) and does not install a single package until all required packages have been downloaded. At least it did that in many, many tests I have performed.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A05D105.1060401>