binary package maintenance tool
kamikaze at bsdforen.de
Sat May 9 18:52:59 UTC 2009
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>
> 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
> 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.
More information about the freebsd-ports