Subject: Bug#756816: apt: "apt-get upgrade packagename" should not set packagename to manually installed

From: Axel Beckert <[email-masked]>
Date: Sat, 2 Aug 2014 13:28:38 +0200

Hi David,

thanks for the explanations.

David Kalnischkies wrote:
> Control: retitle -1 document "apt(-get) (dist-)upgrade pkga pkgb-"

Yeah, I would have done that after your mails if you wouldn't have
done that.

JFTR: I looked IIRC in the man-page for apt-get, maybe also in the one
for apt.

> On Sat, Aug 02, 2014 at 02:02:50AM +0200, Axel Beckert wrote:
> > it seems that -- despite the documentation suggests otherwise -- you now
> > can pass package names as parameter to "apt-get upgrade" and it does
> > what you expect: Try to upgrade only that package.
> 
> No, they don't do that, at least it is not intended. (dist-)upgrade is
> performed as usual, the packages you can provide are just hints.

IMHO such a behaviour is highly non-intuitive. This is definitely a
thing where aptitude's behaviour is way more consistent
and intuitive. "aptitude full-upgrade ~slibs" just does what I mean:
Upgrade all package in the section libs without marking them suddenly
as not automatically installed.

> Imagine a dist-upgrade which has to decide between A | B and chooses
> A, while you prefer B. "apt-get dist-upgrade B" will take care of
> this – as well as "apt-get dist-upgrade A-" in that case.

Ah, that kind of hints. Should be documented at least, yes. I though
still think aptitude's behaviour is the more intuitive one.

> In the past you would have to either manually upgrade certain packages
> earlier or set them on hold or something to make such a choice.

Well, that is one of the reasons why I usually prefer aptitude for
dist-upgrades. I don't have to press Ctrl-C and think about which
packages I have to pass to apt-get to make it understand what I want.
In aptitude I can do that just interactively and I'm done. (I don't
want to start a flamewar here. I just want to point out what I used
to. It likely explains how I come to my expectations. :-)

> > But it also seems to set the given package to "manually installed" for
> > which there is no reason at all:
> 
> Well, there is apts usual reason: If you care enough to mention the
> package explicitly on the commandline, you properly don't want apt to
> suggest its removal later on.

I definitely disagree here. IMHO this is very non-intuitive behaviour.

When doing dist-upgrades from oldstable to stable, I do them in very
small bits, so that no service has a downtime longer than necessary.
One of these steps usually includes bigger bunches of libsomething
packages which I surely never want to have the "automatically
installed" mark removed. (aptitude has one or more bugs which causes
that and it's already very annoying. But at least it doesn't do that
on purpose unless explicitly requested.)

> I can't say I am a huge fan of that, but it is at least very consistent
> and avoids that the autoremoval is overagressive – or do I really want
> it to remove my favorite shell because it isn't needed anymore? ;)

Yes!

Yes indeed. Otherwise I would not have marked it "automatically
installed". All my favourite packages are in a local metapackages. If
that metapackages drops a dependency/recommends/suggests on a package,
I want this package to be removed.

I mean, that's what the "automatically installed" mark is for! The way
apt handles it currently looks as if apt thinks it knows better than
the local admin which package got the "automatically installed" mark
for good reasons and which not. Which IMHO is clearly wrong.

> If you want to upgrade a 'single' package, "install" is for you (which
> has the exact same behavior regarding the autobit).

Which I disagree, too. For the very same reasons.

> Partial upgrades tend to lead to disaster,

Huh? Works fine for me for ages in general. Just not with apt-get but
with aptitude. ;-) That's one of things I like aptitude for a lot. And
is one of the reasons why I use apt-get so seldomly.

> An interactive tool like aptitude can do that differently of course,
> but we have only the commandline available for decision making…

Ok, maybe I'm really too much of an aptitude user to fully unterstand
that reasoning. :-D

Anyway, thanks again for all these explanations. I think, I understand
apt-get a little more than before. And IMHO it clearly shows why there
are both, apt-get and aptitude, and what's their use cases. Much
appreciated, despite my disagreement. :-)

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