This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
debian:upgradepathtemplate [2024/04/17 19:38] 51.174.65.41 old revision restored (2022/11/13 22:43) |
debian:upgradepathtemplate [2024/04/30 16:41] (current) 135.181.212.177 old revision restored (2022/11/15 12:43) |
||
---|---|---|---|
Line 4: | Line 4: | ||
I will normally create a complete system clone and use this template to work out the entire correct and functional path for the production system in question. | I will normally create a complete system clone and use this template to work out the entire correct and functional path for the production system in question. | ||
+ | |||
+ | Debian Release upgrade paths: | ||
+ | |||
+ | Jessie -> Buster -> Bullseye | ||
+ | Stretch -> Buster -> Bullseye | ||
+ | Buster -> Bullseye | ||
===== 1. Preparing for the upgrade ===== | ===== 1. Preparing for the upgrade ===== | ||
- | 1.1. Back up any data or configuration information | + | ==== 1.1. Back up any data or configuration information |
- | 1.2. Inform users in advance | + | |
- | 1.3. Prepare for downtime on services | + | ==== 1.2. Inform users in advance |
- | Set maintainance window for upgrade with buffer | + | |
- | 1.4. Prepare for recovery | + | ==== 1.3. Prepare for downtime on services |
- | Verify the recoverability of system from backup image | + | |
- | 1.5. Prepare a safe environment for the upgrade | + | Set maintainance window for upgrade with buffer |
- | Local terminal or SSH access | + | |
- | 1.6. Develop tests for section 3.3 that will ensure correct execution of needed tasks | + | ==== 1.4. Prepare for recovery |
- | i.e.: | + | |
- | a. Web server delivers correctly | + | |
- | b. php scripts execute correctly | + | |
- | c. DB runs correctly | + | ==== 1.5. Prepare a safe environment for the upgrade |
- | d. mail works | + | |
+ | Local terminal or SSH access | ||
+ | |||
+ | ==== 1.6. Develop tests for section 3.3 that will ensure correct execution of needed tasks ==== | ||
+ | |||
+ | | ||
+ | a. Web server delivers correctly | ||
+ | b. php scripts execute correctly | ||
+ | c. DB runs correctly | ||
+ | d. mail works | ||
+ | |||
+ | ===== 2. Checking system status ===== | ||
- | 2. Checking system status | ||
find NON-Pure Debian packages | find NON-Pure Debian packages | ||
Line 30: | Line 46: | ||
# apt-forktracer | sort | # apt-forktracer | sort | ||
- | 2.1. Review actions pending in package manager | + | ==== 2.1. Review actions pending in package manager |
- | # aptitude | + | |
- | Select GO and review | + | |
- | 2.2. Disabling APT pinning | + | |
- | check / | + | |
- | 2.3. Checking packages status | + | |
- | # dpkg --audit | + | |
- | # aptitude search " | + | |
- | # dpkg --get-selections | grep ' | + | |
- | To remove a hold on a package: echo package_name install | dpkg --set-selections | + | # aptitude |
- | 2.4. Remove proposed-updates section if present in / | + | Select GO and review |
- | 2.5. Verify Unofficial sources are available for target Debian version | + | |
+ | ==== 2.2. Disabling APT pinning ==== | ||
+ | |||
+ | check / | ||
+ | |||
+ | ==== 2.3. Checking packages status ==== | ||
+ | |||
+ | # dpkg --audit | ||
+ | # aptitude search " | ||
+ | # dpkg --get-selections | grep ' | ||
+ | |||
+ | To remove a hold on a package: | ||
+ | | ||
+ | |||
+ | ==== 2.4. Remove proposed-updates section if present in / | ||
+ | |||
+ | ==== 2.5. Verify Unofficial sources are available for target Debian version | ||
+ | |||
+ | |||
+ | ===== 3. Upgrading current version ===== | ||
- | 3. Upgrading current version | ||
3.1. Update current installation | 3.1. Update current installation | ||
- | | + | |
3.2. Upgrade current installation | 3.2. Upgrade current installation | ||
- | | + | |
3.3. Check functionality | 3.3. Check functionality | ||
- | | + | Verify all services required of current host is functioning correctly |
3.4. Upgrade current distribution | 3.4. Upgrade current distribution | ||
- | | + | |
3.5. Check functionality | 3.5. Check functionality | ||
- | | + | see 3.3 above |
+ | |||
+ | ===== 4. Preparing sources for APT ===== | ||
- | 4. Preparing sources for APT | ||
4.1. Adding APT Internet sources | 4.1. Adding APT Internet sources | ||
- | | + | |
- | # sudo sed -i ' | + | |
+ | # sudo sed -i ' | ||
4.2. Adding APT sources for a local mirror | 4.2. Adding APT sources for a local mirror | ||
- | | + | |
+ | Only required for special in-house software | ||
4.3. Adding APT sources from optical media | 4.3. Adding APT sources from optical media | ||
- | Only required for special 3rd party delivered software | ||
- | 5. Upgrading packages | + | Only required for special 3rd party delivered software |
+ | |||
+ | ===== 5. Upgrading packages | ||
Ensure all partition mountpoints are mounted read-write | Ensure all partition mountpoints are mounted read-write | ||
Line 89: | Line 122: | ||
See 3.3 above | See 3.3 above | ||
- | 6. Possible issues during upgrade | + | ===== 6. Possible issues during upgrade |
6.1. Dist-upgrade fails with “Could not perform immediate configuration” | 6.1. Dist-upgrade fails with “Could not perform immediate configuration” | ||
Line 110: | Line 144: | ||
Ctrl+Alt+F1 should recover the terminal window | Ctrl+Alt+F1 should recover the terminal window | ||
- | 7. Upgrading kernel and related packages | + | ===== 7. Upgrading kernel and related packages |
7.1. Install any needed kernel metapackage | 7.1. Install any needed kernel metapackage | ||
Line 120: | Line 155: | ||
# apt-cache show linux-image-amd64 | # apt-cache show linux-image-amd64 | ||
- | 8. Preparing for the next release | + | ===== 8. Preparing for the next release |
8.1. Purging removed packages | 8.1. Purging removed packages | ||
Line 132: | Line 168: | ||
# aptitude purge ' | # aptitude purge ' | ||
- | 9. Obsolete packages | + | ===== 9. Obsolete packages |
9.1. Dummy packages | 9.1. Dummy packages |