User Tools

Site Tools


Sidebar

js#vista.png msort nsort

debian:upgradepathtemplate

Table of Contents

This is an old revision of the document!


Template for Debian System Release Upgrade

1. Preparing for the upgrade

1.1. Back up any data or configuration information

  1.2. Inform users in advance
  1.3. Prepare for downtime on services
          Set maintainance window for upgrade with buffer
  1.4. Prepare for recovery
          Verify the recoverability of system from backup image
  1.5. Prepare a safe environment for the upgrade
          Local terminal or SSH access

2. Checking system status

find NON-Pure Debian packages
  # apt install aptitude apt-forktracer
  # aptitude search '~i(!~ODebian)'
  # apt-forktracer | sort
  2.1. Review actions pending in package manager
          # aptitude
          Select GO and review
  2.2. Disabling APT pinning
          check /etc/apt/preferences & /etc/apt/preferences.d/ for entries
  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

3. Upgrading current version

  3.1. Update current installation
          # sudo apt update
  3.2. Upgrade current installation
          # sudo apt upgrade
  3.3. Check functionality
          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.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/*
  4.2. Adding APT sources for a local mirror
          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

  Ensure all partition mountpoints are mounted read-write
      # mount -o remount,rw /mountpoint
  5.1. Recording the session
          # script -t 2>~/upgrade-TARGET_RELEASEstep.time -a ~/upgrade-TARGET_RELEASEstep.script
       To replay session use scriptreplay
          # scriptreplay ~/upgrade-TARGET_RELEASE.time ~/upgrade-TARGET_RELEASE.script
  5.2. Updating the package list
          # apt-get update
  5.3. Make sure you have sufficient space for the upgrade
          # 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.1. Dist-upgrade fails with “Could not perform immediate configuration”
          # apt-get dist-upgrade -o APT::Immediate-Configure=0
  6.2. Expected removals
  6.3. Conflicts or Pre-Depends loops
          use -o APT::Force-LoopBreak=1 with apt-get
       or
          # dpkg --remove package_name
      or
          # apt-get -f install
          # dpkg --configure --pending
      or
          # dpkg --install /path/to/package_name.deb
  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.1. Install any needed kernel metapackage
          Check for meta package
              # dpkg -l "linux-image*" | grep ^ii | grep -i meta
          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.1. Purging removed packages
          Remove redundant or obsolete packages. see 5.3 above
          get list of removed packages
              # dpkg -l | awk '/^rc/ { print $2 }'
          remove using
              # apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }')
          or use
              # aptitude search '~c'
              # aptitude purge '~c'

9. Obsolete packages

  9.1. Dummy packages
debian/upgradepathtemplate.1713384813.txt.gz · Last modified: 2024/04/17 22:13 by 51.174.65.41