On 2023-03-26 20:15, David Wright wrote:
On Sun 26 Mar 2023 at 11:16:21 (+0200), Jesper Dybdal wrote:
Yesterday, I upgraded Buster => Bullseye.

This morning, I got a mail from unattended-upgrades, which said:

Packages with upgradable origin but kept back:
   Debian stable:
    guile-2.2-libs w3m
and
Package guile-2.2-libs is kept back because a related package is kept back or 
due to local apt_preferences(5).
Package w3m is kept back because a related package is kept back or due to local 
apt_preferences(5).
What does this mean?  I have what I believe to be a clean install, I
have never used apt_preferences, and until now, I had never heard of
guile or w3m.  And I don't quite understand why I have them installed
at all.  My sources.list contains only bullseye and
bullseye-backports.
It's a little odd that, the day after upgrading releases, you
already have backports in your sources list. Is there a specific
reason for that?

No.  The reason is only that experience shows that during the lifetime of a stable release, I will install a few backports.  So the list might just as well be ready from start.  And currently, there is no backported packages installed.


Your system seems to have some old packages on it; for example,
heirloom-mailx and ripole are both from stretch. If you need them,
check trhat you still have access to local copies of those packages
and then try removing them to see whether they're causing a logjam.

apt list says:
guile-2.2-libs/stable 2.2.7+1-6 amd64 [upgradable from: 2.2.4+1-2+deb10u1]
guile-2.2-libs/now 2.2.4+1-2+deb10u1 amd64 [installed,upgradable
to: 2.2.7+1-6]

w3m/stable 0.5.3+git20210102-6 amd64 [upgradable from: 0.5.3-37]
w3m/now 0.5.3-37 amd64 [installed,upgradable to: 0.5.3+git20210102-6]
If you read the Release Notes that come with each release, you'll
find instructions on "cleaning" a system before upgrading. A useful
tool to help with that is, for example:

$ aptitude why w3m
i   imagemagick-6-doc Recommends www-browser
i   w3m               Provides   www-browser
$
Thanks.  The release notes do not mention aptitude why, which seems a good tool.
which would mean, on my system in similar circumstances, that I could
remove w3m without ill effects, and then reinstall it later, after
things have unjammed. Similarly:

$ aptitude why guile-2.2-libs
i   emacs-gtk        Depends    emacs-bin-common (= 1:27.1+1-3.1+deb11u2)
i A emacs-bin-common Recommends mailutils
i A mailutils        Depends    libmailutils7
i A libmailutils7    Depends    guile-2.2-libs
$

Here I could remove mailutils, though in this case certain commands
could temporarily fail, eg a cron job that sends an email.

$ apt-get -s purge mailutils
[ … ]
The following packages were automatically installed and are no longer required:
   gsasl-common guile-2.2-libs libgsasl7 libmailutils7 libntlm0 mailutils-common
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
   mailutils*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
Purg mailutils [1:3.10-3+b1]
$

One of those no longer required packages may be what's causing the
problem. They can be reinstalled after you get a clean upgrade.

If things don't turn out as simple as that, then I would have an
in-depth read of   man aptitude   which can test (aptitude -s)
various paths for fixing the problem. It has the patience to
figure out all the dependency/recommendation chains for any
package on the system. (My system has 56 reasons to install
guile-2.2-libs though, as we know, none is entirely based on
dependencies.)
   $ aptitude -v --show-summary=all-packages why guile-2.2-libs | less

Not /every/ package on a system has to come from the same release
version, but you should know which are the exceptions, why they're
installed, and what their dependencies are. So, for example, I have
squeeze's xtoolwait, whose dependencies, libc6 (>= 2.2.5), libx11-6,
and libxext6, are straightforward to satisfy.

One configuration change I always make is:

   $ cat /etc/logrotate.d/apt
   /var/log/apt/term.log {
     rotate -1
     monthly
     compress
     missingok
     notifempty
   }
   /var/log/apt/history.log {
     rotate -1
     monthly
     compress
     missingok
     notifempty
   }
$

which keeps a perpetual log of what gets installed on a system, when,
and hints as to why. This helps to answer the questions implied in
your opening paragraphs. (I don't install with aptitude, but that
has a similar configuration parameter.)

Cheers,
David.

I have not yet decided exactly what I'll do, but each answer to my original post has significantly improved my understanding of the install system.
Many thanks to everybody who answered!

--

Jesper Dybdal
https://www.dybdal.dk

Reply via email to