Starting with this development release, with APT 2.1.16 to be precise, APT now implements phased updates. Previously, only update-manager implemented phased updates, and this was only used on desktops - the implementation in APT means this works on servers, raspberry pis, and containers, too.
This means that some updates will be hold back on some machines while they are being phased. This is being decided by a value derived from the machine-id, the package name, and package version.
To control phased updates in APT:
- To have all your machines phase the same, set the
APT::Machine-IDoption to a UUID like /etc/machine-id (the format is not being checked right now, but that might change); or point
Dir::Etc::machine-idto another machine-id file.
- To always include phased updates, set
APT::Get::Always-Include-Phased-Updatesto true. This is the old behavior.
- To never include phased updates, set
Note that this does not apply to fresh package installs. APT also respects the options from update-manager about phased updates which are similar to the ones above.
This also applies to any tool using the APT library, such as aptitude and packagekit.
- To avoid breaking existing build chroots, chroots are excluded from this change for now (as are systems without an
/etc/machine-id). This may change in 21.10.
/etc/machine-idfile is looked up relatively to
Dir::Etcsetting, which is
/etc/apt. So if you point
Dir::Etcelsewhere, you might have to copy
machine-idto the right place or set that option to
/etc/machine-id, otherwise phasing will be disabled, and phased updates always included.