From dea3740ce28d55fe19ee6ecf81f5c9417ea99b55 Mon Sep 17 00:00:00 2001 From: Walter Lozano <walter.lozano@collabora.com> Date: Thu, 28 Jan 2021 13:34:22 -0300 Subject: [PATCH] Add information about upgrades and dpkg Update documentation regarding system updates and rollbacks with information about dpkg and deb packages. Signed-off-by: Walter Lozano <walter.lozano@collabora.com> --- .../designs/system-updates-and-rollback.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/content/designs/system-updates-and-rollback.md b/content/designs/system-updates-and-rollback.md index 7982d3c3e..e71f8d528 100644 --- a/content/designs/system-updates-and-rollback.md +++ b/content/designs/system-updates-and-rollback.md @@ -188,6 +188,27 @@ management is not required for final users of Apertis. For example: way. This can be an error prone manual process and might not be accomplished cleanly. +In relation to system settings as defined in [preferences and persistence]( {{< ref preferences-and-persistence.md >}} ) +Debian tools use a very simple approach. On package upgrades the `dpkg` +will perform a check taking into account +- current version default configuration file +- new version default configuration file +- current configuration file + +Different scenarios arise depending on whether user has applied changes to the +configuration file. If current default configuration file is the same as +current, then the user hadn't change it, which implies that it can be safely +upgraded (if it is required). + +However, if the current default configuration file is different from current +the user had applied some changes, so it can't be upgraded silently. In this +case `dpkg` asks the user to choose the version to use. This approach is not +suitable for automated upgrades where there is no user interaction. + +To overcome some of these limitations modern systems tend to use overlays +to have a read-only partition with default values and an upper layer with +custom values. + ### ChromeOS ChromeOS uses an A/B parallel partition approach. Instead of upgrading the system -- GitLab