Date: Tue, 6 Feb 2007 19:04:41 -0500 From: Mike Meyer <mwm-keyword-freebsdhackers2.e313df@mired.org> To: "Henry Lenzi" <henry.lenzi@gmail.com> Cc: freebsd-hackers@freebsd.org Subject: Re: pkg_add does not backtrack, does it? Message-ID: <17865.6041.605201.772296@bhuda.mired.org> In-Reply-To: <8b4c81f0702061514r5a753e48yea0ce9b937236fc3@mail.gmail.com> References: <8b4c81f0702061514r5a753e48yea0ce9b937236fc3@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In <8b4c81f0702061514r5a753e48yea0ce9b937236fc3@mail.gmail.com>, Henry Lenzi <henry.lenzi@gmail.com> typed: > I haven't found the pkg_add code (it's in Ruby, is it?). It's in /usr/src/usr.sbin/pkg_install/add. And no, it's not in ruby. > But from the behaviour of pkg_add -r, it's safe to say that it > doesn't backtrack to resolve dependencies, does it? Why should using a remote repository change the behavior of pkg_add? Are you sure you're not thinking of portupgrade? The -r otion to it causes things to be recursive, and it is sourced in ruby. And it's in the ports tree, not the base system (because it's sourced in ruby), so you'll need to look for the source (or maybe a tarball) there. > Like, for instance (a real example), during gnome2 installation on 6.2: > > warning: 'gstreamer-plugins-gconf-0.10.4_3,2' requires > 'gstreamer-plugins-0.10.10,2', but 'gstreamer-plugins-0.10.9,1' is > installed > > pkg_add goes right ahead. It does not com back to deinstalling > 'gstreamer-plugins-0.10.9,1' and all its dependencies and _then_ goes > back to that point. This looks a little bit confused. "not com back to deinstalling"? Since it wasn't deinstalling that package, it can't come back to it. For that matter, pkg_add doesn't deinstall packages at all as far as I know. I think you're asking if pkg_add will deinstall a package if a newer one is required by a package being installed. That isn't a decision it can really make - you don't know what will break if you do that. > Isn't this a classic AI backtracking problem? (ok, complete noob opinion here). Backtracking is usually associated with a search for a goal. Only the human invoking pkg_add knows the goal, so to decide whether or not a port should be deinstalled requires information from that person. The previously mentioned portupgrade has some flags to provide specific instances of that information for special cases. The port also has some commands for achieving specific goals. If you let us know what your goals are, we might be able to help you get there. <mike -- Mike Meyer <mwm@mired.org> http://www.mired.org/consulting.html Independent Network/Unix/Perforce consultant, email for more information.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?17865.6041.605201.772296>