Most pages were using the pattern '/doc/templates/[...]', but some were using the pattern '/doc/template/[...]', which was confusing. This commit unifies on the former.
9.0 KiB
advanced | lang | layout | permalink | redirect_from | ref | title | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
true | en | doc | /doc/templates/debian/in-place-upgrade/ |
|
133 | How to upgrade a Debian template in-place |
This page provides instructions for performing an in-place upgrade of an installed Debian Template. If you wish to install a new, unmodified Debian template instead of upgrading a template that is already installed in your system, please see the Debian Template page instead. (Learn more about the two options.) In general, upgrading a Debian template follows the same process as upgrading a native Debian system.
Summary instructions for Debian templates
Important: The prompt on each line indicates where each command should be
entered: dom0
, debian-<old>
, or debian-<new>
, where <old>
is the Debian
version number from which you are upgrading, and <new>
is the Debian
version number to which you are upgrading. The instructions may differ for
certain releases. See release-specific notes for any
instructions specific to your particular release.
[user@dom0 ~]$ qvm-clone debian-<old> debian-<new>
[user@dom0 ~]$ qvm-run -a debian-<new> gnome-terminal
[user@debian-<new> ~]$ sudo sed -i 's/<old-name>/<new-name>/g' /etc/apt/sources.list
[user@debian-<new> ~]$ sudo sed -i 's/<old-name>/<new-name>/g' /etc/apt/sources.list.d/qubes-r4.list
[user@debian-<new> ~]$ sudo apt update
[user@debian-<new> ~]$ sudo apt upgrade
[user@debian-<new> ~]$ sudo apt dist-upgrade
[user@dom0 ~]$ qvm-shutdown debian-<new>
Recommended: Switch everything that was set to the old template to the new template.
Detailed instructions for Debian templates
These instructions will show you how to upgrade Debian templates. The same general procedure may be used to upgrade any template based on the standard Debian template.
Important: The prompt on each line indicates where each command should be
entered: dom0
, debian-<old>
, or debian-<new>
, where <old>
is the Debian
version number from which you are upgrading, and <new>
is the Debian
version number to which you are upgrading. The instructions may differ for
certain releases. See release-specific notes for any
instructions specific to your particular release.
-
Ensure the existing template is not running.
[user@dom0 ~]$ qvm-shutdown debian-<old>
-
Clone the existing template and start a terminal in the new template.
[user@dom0 ~]$ qvm-clone debian-<old> debian-<new> [user@dom0 ~]$ qvm-run -a debian-<new> gnome-terminal
-
Update your
apt
repositories to use the new release's code name instead of the old release's code name. (This can be done manually with a text editor, butsed
can be used to automatically update the files.)[user@debian-<new> ~]$ sudo sed -i 's/<old-name>/<new-name>/g' /etc/apt/sources.list [user@debian-<new> ~]$ sudo sed -i 's/<old-name>/<new-name>/g' /etc/apt/sources.list.d/qubes-r4.list
-
Update the package lists and upgrade. During the process, it may prompt you to overwrite the file
qubes-r4.list
. You should overwrite this file.[user@debian-<new> ~]$ sudo apt update [user@debian-<new> ~]$ sudo apt upgrade [user@debian-<new> ~]$ sudo apt dist-upgrade
-
(Optional) Remove unnecessary packages that were previously installed.
[user@debian-<new> ~]$ sudo apt-get autoremove
-
(Optional) Clean cached packages from
/var/cache/apt
.[user@debian-<new> ~]$ sudo apt-get clean
-
(Optional) Trim the new template. (This should no longer be necessary, but it does not hurt. Some users have reported that it makes a difference.)
[user@debian-<new> ~]$ sudo fstrim -av [user@dom0 ~]$ qvm-shutdown debian-<new> [user@dom0 ~]$ qvm-start debian-<new> [user@debian-<new> ~]$ sudo fstrim -av
-
Shut down the new template.
[user@dom0 ~]$ qvm-shutdown debian-<new>
-
(Recommended) Switch everything that was set to the old template to the new template.
-
(Optional) Make the new template the global default.
[user@dom0 ~]$ qubes-prefs --set default_template debian-<new>
-
(Optional) Uninstall the old template. Make sure that the template you're uninstalling is the old one, not the new one!
Standalones
The procedure for upgrading a Debian standalone is the same as for a template.
Release-specific notes
This section contains notes about upgrading to specific releases.
Debian 11 ("Bullseye")
Please see Debian's Bullseye upgrade instructions. In particular: for APT source lines referencing the security archive, the format has changed slightly along with the release name, going from buster/updates to bullseye-security; see Section 5.1.2, “Changed security archive layout”.
This means that, when upgrading from Buster to Bullseye, an additional sed
command is required:
[user@dom0 ~]$ qvm-clone debian-10 debian-11
[user@dom0 ~]$ qvm-run -a debian-11 gnome-terminal
[user@debian-<new> ~]$ sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list
[user@debian-<new> ~]$ sudo sed -i 's/debian-security bullseye\/updates/debian-security bullseye-security/g' /etc/apt/sources.list
[user@debian-<new> ~]$ sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list.d/qubes-r4.list
[user@debian-<new> ~]$ sudo apt update
[user@debian-<new> ~]$ sudo apt upgrade
[user@debian-<new> ~]$ sudo apt dist-upgrade
[user@dom0 ~]$ qvm-shutdown debian-11
Debian 10 ("Buster")
Please see Debian's Buster upgrade instructions.
Debian 9 ("Stretch")
-
The upgrade process may prompt you to overwrite two files:
qubes-r4.list
andpulse/client.conf
.qubes-r4.list
can be overwritten, butpulse/client.conf
must be left as the currently-installed version. -
If sound is not working, you may need to enable the Qubes testing repository to get the testing version of
qubes-gui-agent
. This can be done by editing the/etc/apt/sources.list.d/qubes-r4.list
file and uncommenting theQubes Updates Candidates
repo. -
User-initiated updates/upgrades may not run when a template first starts. This is due to a new Debian config setting that attempts to update automatically; it should be disabled with
sudo systemctl disable apt-daily.{service,timer}
.
Relevant discussions:
- Stretch Template Installation
- Stretch availability in 3.2
- Fixing sound in Debian Stretch
- User apt commands blocked on startup
Also see Debian's Stretch upgrade instructions.
Debian 8 ("Jessie")
Please see Debian's Jessie upgrade instructions.
End-of-life (EOL) releases
We strongly recommend against using any Debian release that has reached end-of-life (EOL).
Additional information
-
Please note that, if you installed packages from one of the testing repositories, you must make sure that the repository is enabled in
/etc/apt/sources.list.d/qubes-r4.list
before attempting the upgrade. Otherwise, your upgrade will break. -
By default, Qubes uses code names in the
apt
sources files, although the templates are referred to by release number. Check the code names for the templates, and ensure you are aware of any changes you have made in the repository definitions.