Google the SiteQuicksearchCategoriesCreative CommonsBlog Administration |
Sunday, December 24. 2006Portupgrade fails to upgrade dependenciesComments
Display comments as
(Linear | Threaded)
I had started a comment, but it got too long -- hence the post/trackback. I'm still thinking about this. The next time somebody sees it, we should try to nail it down better. I'm thinking now that maybe it is the port itself that has the problem -- probably it's not respecting the 'NO_DEPENDS' flag, which I assume that portupgrade uses often (?).
QUOTE: I had started a comment, but it got too long -- hence the post/trackback. Cheers I saw this, just thinking I hope I get notification of any replies to the comments on your site (I left a comment there that you probably saw). If you update the blog entry though I think I'll see it in my RSS feed list ok though I'm sure there was a reason for running the '-arR' switch instead of just using '-a' - I've done it as long as I can remember using portupgrade, 4 yrs or so. I probably started using -arR after reading about it on the freebsd-questions list I think. I'm looking at the source for /usr/local/sbin/portupgrade now and see what you mean about -rR being disabled if -a is used: CODE: opts.def_option("-a", "--all", "Do with all the installed packages") { |$all| $recursive = false $upward_recursive = false } in hindsight this seems obvious / common sense now as well but ho hum. Seems to have been bandied about as a good idea (running with -arR) for so long it's become some what of an urban myth I guess. The reason I started using FORCE_PKG_REGISTER was because I had a whole slew of perl ports that refused to upgrade runtime dependencies. I did start out just upgrade individual packages one by one but this soon got tired when there were more than one or two to do at a time, hence I started using FORCE_PKG_REGISTER to do them en masse. From what I understand using FORCE_PKG_REGISTER with portupgrade -a will force any dependencies to have their pkgdb info updated: CODE: # FORCE_PKG_REGISTER # - If set, it will overwrite any existing package # registration information in ${PKG_DBDIR}/${PKGNAME}. (from /usr/ports/Mk/bsd.port.mk) Portupgrade is looking at port A's dep list, seeing that it has port B as a dep, then finds out port B is out of date and needs updating, but for some reason it sees port B is installed and returns an error saying as much, won't upgrade this, it's already installed. Doesn't seem right. Also you asked on your blog iirc whether they were run or build time deps, iirc al of my problematic deps were runtime and also interestingly I can't remember having the problem with any port other than a p5-* / perl port. You know what p5-* ports are like, they usually have a huge list of other p5-* ports that they depend on for required perl modules - this was why I ended up adding FORCE_PKG_REGISTER, there were just so many of these un-updated packages that refused to upgrade automatically with portupgrade -a. QUOTE: The next time somebody sees it, we should try to nail it down better. I agree, unfortunately the problem doesn't come along too often but next time it does I'll have a look :) Cheers!
# make deinstall
# make reinstall ===> Installing for perl-5.8.8 ===> Generating temporary packing list ===> Checking if lang/perl5.8 already installed ===> An older version of lang/perl5.8 is already installed (perl-threaded-5.8.Cool You may wish to ``make deinstall'' and install this port again by ``make reinstall'' to upgrade it properly. If you really wish to overwrite the old port of lang/perl5.8 without deleting it first, set the variable "FORCE_PKG_REGISTER" in your environment or the "make install" command line. *** Error code 1 Stop in /usr/ports/lang/perl5.8. *** Error code 1 Stop in /usr/ports/lang/perl5.8. ??? |
I usually go back and attempt to portupgrade the problem port by itself
Tracked: Jan 04, 06:42