From: Daniel Burrows on 27 Apr 2010 10:00 Package: aptitude Version: 0.6.2.1-2 aptitude's resolver will *still* upgrade held packages, due to an interaction between the dependency solver and unused package removal. Unused packages are removed before dependencies get solved, and sometimes the dependency solver has to put a package "back" at a newer version. Removing a package clears its hold flag, so when it comes back it doesn't have one. Specifically, this seems to happen with exact versioned dependencies. For instance, mono-runtime depends on mono-gac (= $BINARY_VERSION). So upgrading mono-runtime without mono-gac will cause mono-gac to be removed, then dependency resolution kicks in and realizes that we need mono-gac in order to keep mono-runtime. A temporary solution for you is to cancel the auto flag on any package you hold. Long-term solutions in the code could include postponing dependency resolution until after the resolver finishes (which could have wide-ranging implications), refusing to remove unused held packages, and somehow "remembering" the held flag on packages that were removed because they were unused. Of these three solutions, I prefer the second one, refusing to remove unused held packages. It fits in with the intuitive meaning of "hold", it's easy to implement, and it doesn't have a high risk of surprising side-effects, since it only affects a fairly precisely defined set of packages. Essentially, it causes held packages to be added to the root set (and that's the best implementation, I think: modify aptitude's custom root set function to include held packages). Daniel -- To UNSUBSCRIBE, email to debian-bugs-dist-REQUEST(a)lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmaster(a)lists.debian.org
|
Pages: 1 Prev: Installing 16GB CF card in HP 5700 terminal Next: downloaded .jnlp won't open |