Date: Fri, 24 Dec 2004 17:31:13 -0800 From: "Michael C. Shultz" <reso3w83@verizon.net> To: freebsd-questions@freebsd.org Cc: ringworm@inbox.lv Subject: Re: portupgrade vs. portmanager Message-ID: <200412241731.14458.reso3w83@verizon.net> In-Reply-To: <20041224235211.GA25610@scode-whitestar.mine.nu> References: <41CBB0D6.6080807@att.net> <200412241125.04925.reso3w83@verizon.net> <20041224235211.GA25610@scode-whitestar.mine.nu>
next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 24 December 2004 03:52 pm, Peter Schuller wrote: > > That is indeed the case with portmanager. Sometimes it is a waste > > of time to rebuild everthing when a dependency changes, and > > sometimes it is the right thing to do, portmanager assumes it is > > always the right thing to do. One way this has proved to be a > > benefit is I've never had to run the special scripts when gnome is > > updated because after running portmanager everything is already up > > to date. > > Interesting. While I certainly don't mind a tool doing what's right, > this issue which also exists with NetBSD's pkg_chk is the primary > reason why I'm almost about to give up on it; it's just feasable to > perform full system upgrades properly. Having your primary > workstation half unusable for three days while the whole universe is > rebuilding is not very nice... Right now portmanager is upgrading kdelibs and I'm still using it. The only problem that might occur is between the deinstall/reinstall steps I'll be missing the libraries for about a minute, when this happens I just wait untill its finished reinstalling then continue. Here is a recap of what happens: original kdelibs is already installed all of its dependencies have been updated by portmanager make kdelibs target is run installed kdelibs is backed up to a package for safety kdelibs is deinstalled < now will I not be able to run something new that < is in the kdelibs new kdelibs is reinstalled < now I can run a new kdelibrary item backup package is deleted new kdelibs package is built I've been testing this for a year now and haven't had a problem yet using a program while it is being updated. > > One possible solution I have considered for pkg_chk that may also > work for portmanager is to set up a build environment in a chroot > where everything is properly upgraded. Either for building packages > for all upgraded ports such that the ports installed on the real > system can then be upgraded quickly using the packages; or > alternatively by perhaps maintaining two separate target directories > such that one is being used by normal applications while the other > one is being built. One could then make the switch atomically by > re-mounting /usr/local (or /usr/pkg in NetBSDs case). To do this would require two targets because building one port requires its dependencies to being installed and up to date. It would be a bit of work to do this and I'm not sure it would really be that nessessary. I will keep an opened mind on the idea however. > > Is this even feasable? > > Is portmanager intended to fully replace portupgrade in the long run? No. portmanager can not do something like what portupgrade's portsclean -D -P can do for example. Portupgrade has one serious flaw in my opinion and that is running something like pkgdb -F damages the port installation database as far as I'm concerned. It causes the data base to say ports were built with dependency ports that they were never really built with. Portmanager only addresses that one issue and for the forseeable future that is where all the focus will be, only on correctly updating ports. Maybe if some talanted programmer wants to help out some day we will try to do other things, but right now I'm afraid if I spend time on new features not directly related to updating ports I'll end up letting the core purpose get sloppy. > If so I would, as a user, very much value being able to upgrade all > ports without disabling the machine in question. As it stands now, I > much prefer portupgrade to NetBSD's pkg_chk for exactly this reason, > even if portupgrade requires manual tweaking sometimes. I am not familiar with NetBSD's pkg_chk, so I can't comment on it, but now that I know it exists I will learn what I can about it. -Mike
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200412241731.14458.reso3w83>