User Tools

Site Tools


debian:upgradepathtemplate

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
debian:upgradepathtemplate [2024/03/26 18:35]
114.119.152.147 old revision restored (2024/03/16 14:05)
debian:upgradepathtemplate [2024/03/29 02:20]
114.119.152.147 old revision restored (2024/03/19 17:59)
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 + Verify the recoverability of system from backup image 
-                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 ==== 
 + 
 + i.e.: 
 +  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 =====
Line 31: 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 +    # aptitude 
-2.2. Disabling APT pinning +  Select GO and review 
-            check /etc/apt/preferences & /etc/apt/preferences.d/ for entries + 
-2.3. Checking packages status +==== 2.2. Disabling APT pinning ==== 
-            # dpkg --audit + 
-            # aptitude search "~ahold" + check /etc/apt/preferences & /etc/apt/preferences.d/ for entries 
-            # dpkg --get-selections | grep 'hold$'+ 
 +==== 2.3. Checking packages status ==== 
 + 
 +  # dpkg --audit 
 +  # aptitude search "~ahold" 
 +  # dpkg --get-selections | grep 'hold$' 
 + 
 + To remove a hold on a package: 
 +  echo package_name install | dpkg --set-selections 
 + 
 +==== 2.4. Remove proposed-updates section if present in /etc/apt/sources.list ==== 
 + 
 +==== 2.5. Verify Unofficial sources are available for target Debian version ====
  
-         To remove a hold on a package: echo package_name install | dpkg --set-selections 
-2.4. Remove proposed-updates section if present in /etc/apt/sources.list 
-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 ==== 
-            # sudo apt update + 
-3.2. Upgrade current installation +  # sudo apt update 
-            # sudo apt upgrade + 
-3.3. Check functionality +==== 3.2. Upgrade current installation ==== 
-            Verify all services required of current host is functioning correctly + 
-3.4. Upgrade current distribution +  # sudo apt upgrade 
-            # sudo apt dist-upgrade + 
-3.5. Check functionality +==== 3.3. Check functionality ==== 
-            see 3.3 above+ 
 + Verify all services required of current host is functioning correctly 
 + 
 +==== 3.4. Upgrade current distribution ==== 
 + 
 +  # sudo apt dist-upgrade 
 + 
 +==== 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 's/CURRENT_RELEASE/TARGET_RELEASE/g' /etc/apt/sources.list + 
-            # sudo sed -i 's/CURRENT_RELEASE/TARGET_RELEASE/g' /etc/apt/sources.list.d/+  # sudo sed -i 's/CURRENT_RELEASE/TARGET_RELEASE/g' /etc/apt/sources.list 
-4.2. Adding APT sources for a local mirror +  # sudo sed -i 's/CURRENT_RELEASE/TARGET_RELEASE/g' /etc/apt/sources.list.d/
-            Only required for special in-house software + 
-4.3. Adding APT sources from optical media +==== 4.2. Adding APT sources for a local mirror ==== 
-            Only required for special 3rd party delivered software+ 
 + Only required for special in-house software 
 + 
 +==== 4.3. Adding APT sources from optical media ==== 
 + 
 + Only required for special 3rd party delivered software
  
 ===== 5. Upgrading packages ===== ===== 5. Upgrading packages =====
  
  
-    Ensure all partition mountpoints are mounted read-write + Ensure all partition mountpoints are mounted read-write
-        # mount -o remount,rw /mountpoint+
  
-5.1. Recording the session +  # mount -o remount,rw /mountpoint 
-            # script -t 2>~/upgrade-TARGET_RELEASEstep.time -a ~/upgrade-TARGET_RELEASEstep.script + 
-         To replay session use scriptreplay +==== 5.1. Recording the session ==== 
-            # scriptreplay ~/upgrade-TARGET_RELEASE.time ~/upgrade-TARGET_RELEASE.script + 
-5.2. Updating the package list +  # script -t 2>~/upgrade-TARGET_RELEASEstep.time -a ~/upgrade-TARGET_RELEASEstep.script 
-            # apt-get update + 
-5.3. Make sure you have sufficient space for the upgrade + To replay session use scriptreplay 
-            # apt-get -o APT::Get::Trivial-Only=true dist-upgrade +  # scriptreplay ~/upgrade-TARGET_RELEASE.time ~/upgrade-TARGET_RELEASE.script 
-5.4. Minimal system upgrade + 
-            # apt-get upgrade +==== 5.2. Updating the package list ==== 
-5.5. Check functionality + 
-            See 3.3 above +  # apt-get update 
-5.6. Upgrading the system + 
-            # apt-get dist-upgrade +==== 5.3. Make sure you have sufficient space for the upgrade ==== 
-5.7. Check functionality + 
-            See 3.3 above+  # apt-get -o APT::Get::Trivial-Only=true dist-upgrade 
 + 
 +==== 5.4. Minimal system upgrade ==== 
 + 
 +  # apt-get upgrade 
 + 
 +==== 5.5. Check functionality ==== 
 + 
 + See 3.3 above 
 + 
 +==== 5.6. Upgrading the system ==== 
 + 
 +  # apt-get dist-upgrade 
 + 
 +==== 5.7. Check functionality ==== 
 + 
 + 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” ==== 
-            # apt-get dist-upgrade -o APT::Immediate-Configure=0 + 
-6.2. Expected removals +  # apt-get dist-upgrade -o APT::Immediate-Configure=0 
-6.3. Conflicts or Pre-Depends loops + 
-            use -o APT::Force-LoopBreak=1 with apt-get +==== 6.2. Expected removals ==== 
-         or + 
-            # dpkg --remove package_name +==== 6.3. Conflicts or Pre-Depends loops ==== 
-        or + 
-            # apt-get -f install + use -o APT::Force-LoopBreak=1 with apt-get 
-            # dpkg --configure --pending + or 
-        or +  # dpkg --remove package_name 
-            # dpkg --install /path/to/package_name.deb + or 
-6.4. File conflicts +  # apt-get -f install 
-            # dpkg -r --force-depends package_name +  # dpkg --configure --pending 
-6.5. Configuration changes + or 
-            Usually answer "YES" to files in /etc/init.d directory or /etc/manpath.config +  # dpkg --install /path/to/package_name.deb 
-6.6. Change of session to console + 
-            Ctrl+Alt+F1 should recover the terminal window+==== 6.4. File conflicts ==== 
 + 
 +  # dpkg -r --force-depends package_name 
 + 
 +==== 6.5. Configuration changes ==== 
 + 
 + Usually answer "YES" to files in /etc/init.d directory or /etc/manpath.config 
 + 
 +==== 6.6. Change of session to console ==== 
 + 
 + 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 ==== 
-            Check for meta package + 
-                # dpkg -l "linux-image*" | grep ^ii | grep -i meta + Check for meta package 
-            if none are installed check which ones are available + 
-                # apt-cache search linux-image- | grep -i meta | grep -v transition +  # dpkg -l "linux-image*" | grep ^ii | grep -i meta 
-            select correct one based on value returned by running "uname -r" eg. kernel “2.6.32-5-amd64” + 
-                # apt-cache show linux-image-amd64+ if none are installed check which ones are available 
 + 
 +  # apt-cache search linux-image- | grep -i meta | grep -v transition 
 + 
 + select correct one based on value returned by running "uname -r" eg. kernel “2.6.32-5-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 ==== 
-            Remove redundant or obsolete packages. see 5.3 above + 
-            get list of removed packages + Remove redundant or obsolete packages. see 5.3 above 
-                # dpkg -l | awk '/^rc/ { print $2 }' + 
-            remove using + get list of removed packages 
-                # apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }') + 
-            or use +  # dpkg -l | awk '/^rc/ { print $2 }' 
-                # aptitude search '~c' + 
-                # aptitude purge '~c'+ remove using 
 + 
 +  # apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }') 
 + 
 + or use 
 + 
 +  # aptitude search '~c' 
 +  # aptitude purge '~c'
  
 ===== 9. Obsolete packages ===== ===== 9. Obsolete packages =====
  
  
-9.1. Dummy packages+==== 9.1. Dummy packages ==== 
debian/upgradepathtemplate.txt · Last modified: 2024/04/29 14:41 by 3.137.220.120