[Aptitude-devel] sigh, bad old upgrade behavior?

Daniel Burrows dburrows at debian.org
Wed Feb 24 15:44:42 UTC 2010

On Wed, Feb 24, 2010 at 07:23:14AM -0800, Daniel Burrows <dburrows at debian.org> was heard to say:
>   aptitude itself will probably never distinguish between important
> and do-not-care packages (at least not in the sense of optimizing to
> avoid one or the other situation).  However, its resolver hints could
> be used to tweak the score and/or tier of one or more packages to avoid
> this.  Particularly once I finish the current round of changes, it'll
> be entirely conceivable that someone (such as the release team) could
> publish an apt.conf.d snippet containing hints to guide a particular
> upgrade.

  To follow up to myself, there's no reason that some basic hints
couldn't be shipped in the aptitude package.  I was thinking something

Aptitude {
  Resolver::Hints {
    Mode "lenny-squeeze" {
        // Try not to remove package1 (if it's installed).
        "package1 UNINST  increase-cost-level squeeze-upgrade 1";
        // Before the resolver runs, install package3 squeeze-version
        // if package2 lenny-version is already present.
        "package2 lenny-version   prepare-by-installing package3 squeeze-version";

  Resolver::Level-Order {
    Mode "lenny-squeeze" {
      // Try hardest to obey package pin priorities; then avoid
      // deviating from the upgrade plan; then try to avoid canceling
      // upgrades and removing packages.
      "pin-priority, squeeze-upgrade, canceled-upgrades + removals";

  (I have no attachment to this syntax, it just came off the top of my

  Then you'd run aptitude with --resolver-mode=lenny-squeeze to activate
those options.

  The level-order specifies a descending sequence of tie-breaks.  It'll
take some tweaking to figure out a "good" order -- I suspect that
removals should be a separate level from canceled-upgrades, but I wanted
to demonstrate that you can add two counters together. :-)


More information about the Aptitude-devel mailing list