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

Tom Roche Tom_Roche at pobox.com
Sun Jul 12 16:20:51 UTC 2015


summary: the Debian "general public" is being regularly told that `apt-get dist-upgrade` is recommended over `aptitude dist-upgrade`--period, full stop. `apt` and `aptitude` developers who are concerned that users be better informed should recommend slightly more accurate text to the the Debian Reference (DR) maintainer(s): e.g.,

* `apt-get dist-upgrade` is better for non-interactive usecases, especially for beginners lacking sufficient knowledge of Debian packaging and package dependencies.
* `aptitude dist-upgrade` is better for interactive usecases (e.g., more complicated upgrades from less-standard repositories), provided one has the knowledge required to interact successfully.

details:

Axel Beckert Sun, 12 Jul 2015 14:58:56 +0200[1]
> [This thread's Subject line] is misleading[:] aptitude understands both dist-upgrade and full-upgrade.

Fair enough: I'll use both `apt-get dist-upgrade` and `aptitude dist-upgrade` below and in future.

> (And "apt" also understands "full-upgrade", btw.)

That I did not know; thanks for the info. That being said, this is probably the first time I've ever seen `apt full-upgrade` or `apt-get full-upgrade` mentioned in print, and I'd bet money it's not a widespread usage.

Tom Roche Sat, 11 Jul 2015 17:38:49 -0400[2]
>> `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.
>> Even when the problem appears to be hardware-related[3], i.e., to have no relation to debian packaging[.]
>> The `apt-get` jihadis are especially emphatic when discussing [dist-upgrade].

> You should not ask them if you're asking for aptitude advice.

My point above is precisely that, even when one is asking a non-packaging question in a general forum (see the linked thread[3]) and *is not* "asking for `aptitude` advice`, one gets `apt-get` advice, precisely because of

>> (in increasing order of emphasis)

>> 1. bad `aptitude` experiences in the distant past

>> 2. bug#=411280[4], an 8.5-year-old archived bug, on which the last activity was 5 years ago.

>> 3. Debian Reference section#=2.2.1[5], which cites ... bug#=411280.

Obviously `apt` and `aptitude` developers can't affect item#=1, but IMHO you really should contact the DR maintainer(s) about item#=3, if only because item#=2 would probably not be misinterpreted as relevant if it was not cited and linked to from the DR.

>> are there any plans to update relevant Debian documents such as the Debian Reference[5] or bug#=411280[4]?

> Bug #411280 has been resolved in 2010.

> And I don't see what's wrong with the Debian References

Quoting the relevant text:

DR section#=2.2.1[5]
>>> The aptitude command is not recommended for the release-to-release system upgrade on the stable Debian system after the new release. The use of "apt-get dist-upgrade" is recommended for [that]. See Bug #411280[3, link in original]

As a native speaker of English, I must protest that the meaning of that DR text differs greatly from that in Herr Beckert's post:

> apt(-get) (dist|full)-upgrade is for one-shot commands, aptitude full-upgrade [is] for [when] you want to change [its programmatic recommendations] interactively.
...
> 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.
...
> I'd recommend "apt" for beginners nowadays. If they [gain] some experience and [run] into some dependency issues ([e.g.,] in unstable) _and_ are dissatisfied with apt, they should have a look at aptitude's interactive dependency resolution.

> And if they like [aptitude's] TUI, they should just use it.

ICBW (please correct where wrong), but Beckert is saying that

* `apt-get dist-upgrade` is better for non-interactive usecases, especially for beginners.
* `aptitude dist-upgrade` is better for interactive usecases, e.g., involving packages with dependency issues.
* `apt`'s package dependency resolver is not more or less robust or error-prone than `aptitude`'s (and vv).

That's quite different from the (IMHO) nuance-free meaning of DR section#=2.2.1[5] above, which moreover continues:

>>> * apt-get is most suitable for the major system upgrade between releases, etc.
>>> * apt-get offers a *robust* [bold in original] package dependency resolver. 

No nuance there!

> When writing documentation[,] you should always use apt-get.

That statement seems, frankly, bizarre. The better recommendation (IMHO) for Debian documentation (esp references) is to tell Debian users which tools are better for which usecases--*not* to tell users that `apt-get dist-upgrade` is recommended over `aptitude dist-upgrade`, "end of story" (as they say in the US). Instead, why not tell users (via, e.g., the DR) that

* `apt-get dist-upgrade` is better for non-interactive usecases, especially for beginners lacking sufficient knowledge of Debian packaging and package dependencies.
* `aptitude dist-upgrade` is better for interactive usecases (e.g., more complicated upgrades from less-standard repositories), provided one has the knowledge required to interact successfully.
* `apt-get` and `aptitude` use different package dependency resolvers for different usecases, but one is not more robust than the other.
* bug#=411280[4] is no longer relevant.

? TIA, Tom Roche <Tom_Roche at pobox.com>

[1]: http://lists.alioth.debian.org/pipermail/aptitude-devel/2015-July/004859.html
[2]: http://lists.alioth.debian.org/pipermail/aptitude-devel/2015-July/004858.html
[3]: http://forums.debian.net/viewtopic.php?f=10&t=123574
[4]: http://bugs.debian.org/411280
[5]: https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_literal_apt_get_literal_literal_apt_cache_literal_vs_literal_aptitude_literal



More information about the Aptitude-devel mailing list