Debian linux Stretch (9) is released meanwhile. Even i really belive the future will be with always fresh distributions like CoreOS (and Arch?), debian stays very important distribution. I use it and it's time to upgrade my home server (used as NAS and dev-server).
Let'S start by printing my system version before update:
#cat /etc/debian_version 8.8 #uname -a Linux nas 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2 (2017-04-30) x86_64 GNU/Linux
1. Backup your configs
Since i've had good experinces last time. I've reduced the whole backup to /etc/
# Copy current /etc config to cp -a /etc /...BACKUP/jessie/
2. Use screen or tmux
if you're working remote (via ssh) make sure that you don't suffer from any interuptions. With simple comand
if eny interuption occurs you'r screen is not interupted, you can login and continuer to work with
3. Check if there are problems with packages
First you don't use aptitude anymore, right? Second, you advised to chgeck, that there are no packages "on hold".
aptitude search "~ahold"
The apt apt-get maintained "hold" packages:
dpkg --get-selections | grep 'hold'
Now check dpkg problems with
If it shows nothing - everything is fine for now.
4. Upgrading apt source list
Before upgrading the source list i recoment to install Gnu Keyring of Debian archive.
apt-get install debian-archive-keyring apt-key update
Ok, it seems that system is prepared for upgrade and we are ready to switch release code names from jessie to stretch.
sed -i 's/jessie/stretch/g' /etc/apt/sources.list
Checking the outcome by
#Source list deb http://ftp.de.debian.org/debian/ stretch main non-free contrib deb-src http://ftp.de.debian.org/debian/ stretch main non-free contrib deb http://security.debian.org/ stretch/updates main contrib non-free deb-src http://security.debian.org/ stretch/updates main contrib non-free
But ther could be more custom source lists in /etc/apt/sources.list.d/. So i have to files more one for docker and one for nodejs. Turns out, that there is no repository yet for
deb https://deb.nodesource.com/node stretch main right now. But i don't actively need nodejs now, i've just disable and ignore this.
# cat /etc/apt/sources.list.d/docker.list deb https://apt.dockerproject.org/repo debian-jessie main
Upgrading to stretch:
sed -i 's/jessie/stretch/g' /etc/apt/sources.list.d/*.list
5. Upgrade packages
If no problems appeared run to perform a minimal system upgrade (no packages will be removed at this stage).
If Everything went smooth apply a dist-upgrade.
Cleanup unused packages.
Check new version and enjoy!
#cat /etc/debian_version 9.0 #uname -a Linux nas 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2 (2017-06-12) x86_64 GNU/Linux
Hope that this helps somebody, feedback is welcome as always!