So, Ubuntu has this feature called “phased updates”, where when you execute apt upgrade on the CLI, it’ll intensionally prevent the installation of upgrades they are “phasing in” progressively.
The feature which is described here:
In my humble opinion seems to make sense (at least for my needs).
Now, I suspect when you upgrade packages via the GUI, it runs apt list --upgradable then proceeds to update all packages using more or less a forced upgrade of all available packages.
I’d like to see an “option” whereby you can either choose at the time of installation or have configuration set elsewhere to “respect” the “held back” packages from being installed.
As I understand it, “phased upgrades” are made available over a period of time to smaller groups of people to prevent potential bugs from affecting the masses. It seems logical in my mind to let the phasing happen progressively and I’m okay generally speaking “waiting my turn” while I’m phased in…
I’d be unpleasantly surprised if apt has been configured to not upgrade stuff it would be listed as upgradable. (But, I have been unpleasantly surprised by apt/dpkg many times in the past, so…who knows.)
The way “phased updates” works is that anything that potentially might be buggy gets “temporarily” held back during a standard “apt upgrade” operation… Canonical makes these updates available in batches to users and monitors the feedback, while addressing any potential issues reported by the current users who have been “phased in”… Over the phase in period, you CAN technically install the updates, but you need to do it more “forcefully” as in, “apt install {package}” or “apt upgrade {package}”… The phase in process is merely a way to prevent potentially buggy versions of code into the public for “LTS” versions.
I actually agree with this process, which is why I typically do most upgrades via the CLI so that the held back versions packages are held back until I’m phased in… Typically the phase in process only takes a few days from the release of affected packages, hence it’s not exactly anything bad.
While I cannot confirm how the Virtualmin GUI does things, I believe what I suspect is likely true since packages that would normally be “held back” are installed from the GUI as if not held back.
My suggestion was to make this an “option” so that IF you wanted to respect the phased process, you COULD… Not saying that EVERYONE would agree, hence making it an “option”.
I repeat my question: Are you assuming, or have you checked to see that Virtualmin is not respecting it? I would assume it does. We use apt list --upgradeable to find out what’s available for update. If it doesn’t lie and say something that should not be upgraded should be, then the right thing will happen. We certainly don’t “force” anything.
I know it’s not respecting it, since issuing “apt upgrade” via the CLI is ommitting “phased updates” along with a message as to why… But doing an upgrade inside the Virtualmin GUI is upgrading these “phased updates” as if they weren’t intended to be held back.
Phased updates on the CLI show up something like…
When running “apt update” you’ll the standard message of:
Run apt list --upgradable
When you run “apt upgrade” you’ll get two messages like:
The following packages will be upgraded...
followed by
The following packages have been held back...
When you click “Y”, then “Enter” the “held back” upgrades will NOT get installed.
Because phased updates CAN be different for each user, where one user may not have the same phased updates as another, the outcome would be different. If I’m in the current batch, then I may not see any phased updates, where as if you are, you would.
Usually within a few days to a week after you see phased updates, those updates will become available to upgrade as usual.
As described by Canonical:
"Phased updates" allow careful rollout of deb package changes at scale.
You may see these as packages that have been "kept back". Learn more at
https://ubuntu.com/server/docs/about-apt-upgrade-and-phased-updates
Agh, then that means --upgradable is showing packages that should not be upgraded, which is terrible behavior. I don’t know what to do about that. We have to use install because we allow the user to select which of the upgradable packages to upgrade (you cannot call apt upgrade <packagename>).
This seems like a poor design decision on the part of the Ubuntu folks. I don’t know how to resolve it.
Fair enough, I’ll continue to upgrade from CLI for now. It was just a thought, and “yes” upgradable does show all upgrades including those Canonical would recommend temporarily holding back.
It looks like there might be a way, and perhaps an alteration to my suggestion which could work. I’ll have to confirm next time there are packages that are being “Kept Back” by Ubuntu.
It may be possible to:
Run apt-get list --upgradable
This would select all “upgradable” packages including those that should be “Kept Back”.
Run apt-mark showhold
This as I understand it should list all packages that are intended to be “Kept Back”.
Compare “upgradable” against those returned from “showhold”.
Create two lists on next screen showing upgradable package with “Kept Back” packages in a separate list.
Keep “Kept Back” upgrades “unchecked” by default, while others are “checked” by default.
This would allow a user to make an “informed” decision whether they want to install all packages or omit any, or all of the “Kept Back” ones completely.
Ex.
Upgradable Packages:
[x] rsync
[x] apache2
Kept Back Packages:
[ ] php 8.2
[ ] mariadb
[INSTALL PACKAGES]
*** the above is just to demonstrate the two lists of packages ***