{{Header}}
{{title|title=
Release Upgrade {{project_name_long}} 16 to {{project_name_long}} 17
}}
{{#seo:
|description=How to Release Upgrade from {{project_name_short}} 16 to {{project_name_short}} 17
|image=Upgrade.jpg
}}
[[File:Upgrade.jpg|thumb]]
{{intro|
How to Release Upgrade from {{project_name_short}} 16 to {{project_name_short}} 17
}}

= Notices =
'''Table:''' ''Release Upgrade {{project_name_short}} Notices''

{| class="wikitable"
|-
! scope="col"| '''Notice'''
! scope="col"| '''Description'''
|-

! scope="row"| Difficulty
|
* Downloading a new {{project_name_gateway_long}} / {{project_name_workstation_long}} ([[Factory Reset]]) is easier than applying the [[Release Upgrade|Release Upgrade]] instructions on this page.
* Debian release notes:
** [https://www.debian.org/releases/bookworm/amd64/release-notes/ch-upgrading.en.html Chapter 4. Upgrades from Debian 11 (bullseye)]
** [https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information Chapter 5. Issues to be aware of for bookworm]
|-
! scope="row"| Release Upgrade vs Re-Installation
|
To use [[About|{{project_name_short}}]] 17, users can either:

* '''A)''' Release upgrade existing {{project_name_short}} 16 images using the instructions on this page; <u>OR</u>
* '''B)''' Factory Reset using the {{project_name_short}} re-install method by downloading the new release, which is much simpler than upgrading:
** [[Non-Qubes-Whonix|{{non_q_project_name_short}}]] 17: [[Download|download the new release]].
** [[Qubes|{{q_project_name_long}}]] 17: [[Qubes/Install|download the new release]].
|-

! scope="row"| Standard Updates
|
* For standard ("everyday") update instructions see [[Operating System Software and Updates]]. <br />
* The instructions on this page describe how to perform a [[Release Upgrade]] from {{project_name_short}} 16 to {{project_name_short}} 17.
|-

! scope="row"| Automated Release Upgrade vs Manual Release Upgrade
|
* [[#Release Upgrade|Automated Release Upgrade]] is the newer method that has been implemented. It does not ask for user input and is therefore easier to use.
* The former Manual Release Upgrade effectively did the same, but it offered more control over system customization. It is now [[Deprecated#Manual Release Upgrade|deprecated]]. <ref>
This method is still possible. All the automated [https://github.com/Kicksecure/legacy-dist/blob/master/usr/sbin/release-upgrade <code>release-upgrade</code>] script does is perform actions which the user could perform manually. If a manual release upgrade is desired, emulate what the <code>release-upgrade</code> script is doing. The manual release upgrading procedure is [[Unsupported|undocumented]] due to the size of the instructions and duplication involved.
</ref>
|-

! scope="row"| Configuration Files Resets
| Since this is an automated release upgrade, user modified configuration files (if any) in folder <code>/etc</code> will be reset, overwritten with the Debian or {{project_name_short}} package version. The user is free to restore the configuration after the release upgrade.
|-

|}

= High Level Overview =

# Backup all data - ideally have a copy of the VM(s) so it is possible to try again (if necessary).
# Perform the usual [[Operating_System_Software_and_Updates#Standard_Upgrade_Steps|standard ("everyday") update instructions]].
# Consider running the optional [[#Sanity Tests|sanity tests]].
# Release Upgrade {{project_name_workstation_short}} (<code>whonix-ws-16</code>).
# Power off {{project_name_workstation_short}} (<code>whonix-ws-16</code>).
# Release Upgrade {{project_name_gateway_short}} (<code>whonix-gw-16</code>).
# Restart {{project_name_gateway_short}} (<code>whonix-gw-16</code>).
# Restart {{project_name_workstation_short}} (<code>whonix-ws-16</code>).

= Sanity Tests =

<div class="toccolours mw-collapsible mw-collapsed">
These are optional, but recommended. To complete sanity tests, please press on expand on the right.
<div class="mw-collapsible-content">
{{CodeSelect|code=
sudo dpkg --audit ; echo $?
}}

Expected output.

{{CodeSelect|code=
0
}}

{{CodeSelect|code=
sudo dpkg --configure -a ; echo $?
}}

Expected output.

{{CodeSelect|code=
0
}}

[[Operating System Software and Updates|Get package upgrades.]]

{{CodeSelect|code=
sudo apt update
}}

{{CodeSelect|code=
sudo apt full-upgrade
}}

For testing purposes, install package <code>nano</code>.

{{CodeSelect|code=
sudo apt install nano ; echo $?
}}

{{CodeSelect|code=
## ... successful installation of nano ...
0
}}

Apt install fix missing.

{{CodeSelect|code=
sudo apt install -f
}}

Expected upgrade.

<pre>
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
</pre>
</div>
</div>

= Release Upgrade =

# Backup all data - ideally have a clone of the VM(s) so it is possible to try again (if necessary).
# Perform the usual [[Operating_System_Software_and_Updates#Standard_Upgrade_Steps|standard ("everyday") update instructions]].
# Consider running the optional [[#Sanity Tests|sanity tests]].
# Run [https://www.kicksecure.com/wiki/Systemcheck systemcheck].
# View <code>release-upgrade</code> command version. {{CodeSelect|code=
cat /usr/sbin/release-upgrade {{!}} grep version=
}}
# Make sure the Kicksecure repository is enabled by re-running the [[Project-APT-Repository|derivative APT repository tool]]. <ref>
* This is required because the repositories have been split. Whonix is based on Kicksecure.
* This step will not be required when upgrading from 17 to 18.
</ref>
# Check <code>release-upgrade</code> command version. Should be minimum <code>2.0</code>, should show <code>version="2.0"</code>.
# Consider keeping the full release upgrade log output. It will be required for [[Support]] in case there are issues.
# Perform the automated [[Release Upgrade|release upgrade]] using <code>release-upgrade</code> command. {{CodeSelect|code=
sudo release-upgrade
}}
# Done. If everything went well, at the end it will show: <blockquote>INFO: OK. (release-upgrade version: 2.0) Release upgrade success.</blockquote>
# Reboot.
# Optional, recommended: [[Debian_Packages|Re-install Meta Packages and Safely Run Autoremove]]

= Footnotes =

{{reflist|close=1}}

[[Category:Documentation]]

{{Footer}}