Re: The following packages have been kept back

Matus UHLAR - fantomas <[email protected]> Mon, 19 Nov 2018 17:12:23 +0100
Newsgroups gmane.linux.debian.user.laptop
Message-ID <[email protected]>
>* Dave Horsfall <[email protected]> [181118 14:42]:
>> Latest Debian 8 (will go to 9 soon) on Acer Aspire E15
>>
>>     root@debbie:/home/dave# apt-get upgrade
>>     Reading package lists... Done
>>     Building dependency tree
>>     Reading state information... Done
>>     Calculating upgrade... Done
>>     The following packages have been kept back:
>>       firmware-linux-nonfree
>>     The following packages will be upgraded:
>>       firmware-atheros
>>     1 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
>>
>> What on earth does that mean?  I have "non-free" listed in sources.list
>> (which this list told me to do).

On 19.11.18 10:09, Marvin Renich wrote:
>The apt-get upgrade command does a "safe" upgrade; it will not install
>any new packages or delete obsolete packages, nor will it upgrade any
>package whose new version would require such.

I use unattended-upgrades for security upgrades and manual aptitude in these
cases.

>If you say «apt-get install firmware-linux-nonfree» it should tell you
>what it is going to do and ask for confirmation if any other packages
>will be installed or removed.

I would call this unfortunate, because security update should not bring new
packages unless really needed.

>I believe, in this case, the new version of firmware-linux-nonfree
>depends on firmware-amd-graphics and firmware-misc-nonfree, which the
>old package does not require.

I think so.

>  The upgrade command will refuse to do
>this automatically, but the install command should work just fine.

apt-get dist-upgrade would do that too, but I wouldn't recommend doing this
unless you are upgrading your debian version.

>It used to be that aptitude was the recommended tool for managing
>packages within a terminal window; it can be used as a command line tool
>the way apt-get can, but if you don't give it a command (i.e. just say
>«aptitude») it uses a curses interface to allow you to manage the
>packages (sort of like synaptic, but for a terminal window).

I still use it and I'm glad aptitude exists.
I use it when upgrading debian (takes more time but shortens outages) to
upgrade packages selectively.

>At some point, I think about 10-15 years ago (but don't quote me on
>that), aptitude's resolver was changed, and it became less helpful.  The
>resolver is the part of aptitude and apt-get which takes what you have
>asked it to do and figures out what other actions need to be done to
>achieve that.  The resolver in apt-get did a better job of choosing a
>more useful solution.

I disable aptitude to automatically resolve dependencies. Those manually
selected often suck. But, when you can select what you want (using . and ,)
we can select.

Worse is, that between jessie and stretch, something in aptitude has
changed, so when I select to upgrade package and don't like the result,
selecting "keep" by pressing ":" on a package doesn't revert to previous
state as did the jessie version.