[Aptitude-devel] apt-get dist-upgrade vs aptitude full-upgrade, aka the apt-get jihad

Axel Beckert abe at debian.org
Sun Jul 12 12:58:56 UTC 2015


Hi Tom,

Tom Roche wrote:
> Subject: dist-upgrade vs full-upgrade, aka the apt-get jihad

This subject is misleading since you've wrote to the aptitude mailing
list and aptitude understands both, dist-upgrade and full-upgrade.
(And "apt" also understands "full-upgrade", btw.)

And there is no such thing as a war between aptitude and apt(-get),
except maybe about the number of unresolved bug reports[1]. ;-)

[1] https://lists.alioth.debian.org/pipermail/aptitude-devel/2012-January/001823.html

Both tools have different use cases and audiences. If people actually
do fight that war, they're wrong. They likely belong to only one
audience and don't know about the other audience.

> summary: Are there any significant current reasons to prefer
> `apt-get dist-upgrade` to `aptitude full-upgrade`?

Yes.

> If so: what are they?

apt(-get) (dist|full)-upgrade is for one-shot commands, aptitude
full-upgrade s for doing dist-upgrades where you want to change the
autmatically made decisions interactively. They have different
dependency resolver engines -- on purpose.

> If not: are there any plans to update relevant Debian documents such
> as the Debian Reference[1] or bug#=411280[2]?

Bug #411280 has been resolved in 2010.

And I don't see what's wrong with the Debian References: If you don't
want to think about the difference between apt-get and aptitude on the
command-line, it is (IMHO strongly) recommended to use apt-get or apt
as that one in most cases produces better one-shot dependency
resolutions. (And I'm saying this as a convinced and long-time
aptitude user -- who btw. is happy that APT got a nicer CLI with
"apt".)

> I like the `aptitude` CLI, which I've used since I started using
> Debian-based distros early in this millenium. (I very rarely use the
> CUI or NUI or whatever you call it[3].)

What parts of the aptitude CLI do you like that much? There are many
small differences solely on the CLI, but not everyone will notice
them.

> However, `aptitude` does regularly bring one annoyance (to
> me--YMMV): whenever I post to a list or a forum, if I even mention
> `aptitude`, I get a bunch of responses telling me to use `apt-get`
> instead.

That's usually bullshit. The decision between apt(-get) and aptitude
is only up to the local system administrator -- except in one case:
When writing documentation. Then you should always use apt-get.

So if you're not asking for advice on how to write documentation or
your question is about dependency resolution, just ignore it and tell
people that _this_ makes no difference.

> The `apt-get` jihadis are especially emphatic when
> discussing release upgrade.

Where they are right since apt-get and aptitude make a relevant
difference there. You should not ask them if you're asking for
aptitude advice.

> They have no doubt that one really should `apt-get dist-upgrade` to,
> e.g., go from wheezy to jessie.

That's the official recommendation for dist-upgrades from oldstable to
stable, but YMMV, e.g. if you're mixing releases. Others may have
again different preferences, e.g. I use aptitude's TUI for
dist-upgrades.

> But, AFAICS, this is based solely on (in increasing order of
> emphasis)

I'd just simply say they don't know better. (And please notice that at
least the active APT developers are no such jihadists -- and they
should know best. :-)

> This timeframe seems relevant since, IIRC (and please correct me if
> wrong) project=aptitude revived ~2011 after long inactivity by
> Daniel Burrows. If that's correct, one might reasonably infer that
> problems observed 2007-2010 (the time during which bug#=411280[2]
> was active) have since been addressed.

Your observation is correct, but the conclusion seems wrong.

> 1. Should `aptitude full-upgrade` still be deprecated relative to `apt-get dist-upgrade`?

Yes.

> 1.1. What currently makes `apt-get dist-upgrade` {better, more reliable} than `aptitude full-upgrade`?

Different target audience -- especially the one without experience and
hence abiding to documentation as much as possible.

You don't want bloody beginners to fiddle around with dependency
resolution manually -- and that's what aptitude's dependency resolver
has been written for.

So if it's not for the TUI, I'd recommend "apt" for beginners
nowadays. If they gained some experience and ran into some dependency
issues (i.e. in unstable) _and_ are dissatisfied with apt, they should
have a look at aptitude's interactive dependency resolution.

And if they like the TUI, they should just use it. There's no APT
alternative for that, except maybe, hmmm, dselect? Well, no -- there's
a reason why I switched from dselect to aptitude over a decade ago.
;-)

		Regards, Axel
-- 
 ,''`.  |  Axel Beckert <abe at debian.org>, http://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5
  `-    |  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE



More information about the Aptitude-devel mailing list