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-ID
option to a UUID like /etc/machine-id (the format is not being checked right now, but that might change); or pointDir::Etc::machine-id
to another machine-id file. - To always include phased updates, set
APT::Get::Always-Include-Phased-Updates
to true. This is the old behavior. - To never include phased updates, set
APT::Get::Never-Include-Phased-Updates
to false.
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.
Special notes:
- 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. - The
/etc/machine-id
file is looked up relatively toDir::Etc
setting, which is/etc/apt
. So if you pointDir
orDir::Etc
elsewhere, you might have to copymachine-id
to the right place or set that option to/etc/machine-id
, otherwise phasing will be disabled, and phased updates always included.