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? 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 $ 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.