Informer à l'avance les principaux utilisateurs de l'instance de la mise à jour en cours.
Vérifier la présence d'une sauvegarde correcte et récente :
Connectez vous en tant que root à l'instance depuis la console VNC du manager OVH. Cela permettra de surveiller l'instance lors des redémarrages.
Vérifiez et notez :
le système d’exploitation actuellement installé sur votre machine : lsb_release -a
le noyau actuellement installé : uname -mrs
la version de Debian : cat /etc/debian_version
Sauvegarder les éléments qui pourrait s'avérer nécessaire une fois la mise à jour lancée :
cd /home/admin/dwl/
mkdir -p /home/admin/dwl/upgrade-debian-11-to-12
cd /home/admin/dwl/upgrade-debian-11-to-12
chown -R admin: /home/admin/dwl
exécuter en tant que
root :
dpkg --get-selections "*" > system-$(lsb_release --codename|cut -f2)-$(date +"%Y-%m-%d")_installed_packages.txt
tar -cjf system-$(lsb_release --codename|cut -f2)-$(date +"%Y-%m-%d")-var-lib-dpkg.tar.bz2 /var/lib/dpkg
tar -cjf system-$(lsb_release --codename|cut -f2)-$(date +"%Y-%m-%d")-var-lib-apt-extended_states.tar.bz2 /var/lib/apt/extended_states
tar -cjf system-$(lsb_release --codename|cut -f2)-$(date +"%Y-%m-%d")-etc.tar.bz2 /etc
chmod 600 system-*
chown admin: system-*
En local sur votre machine, créer un dossier qui stockera les éléments les plus important avant la mise à jour : mkdir -p ~/Data/sinp-<region>/system-upgrade/<instance>-srv/
Téléchargez et installez les derniers paquets et les mises à jour en attente sur votre version actuelle de Debian :
apt update
apt upgrade
apt full-upgrade
apt autoremove --purge
Lister les paquets obsolètes pour les supprimer si possible avec les commandes suivantes :
apt list ~o
apt list ?obsolete
aptitude search '~o'
Supprimer les paquets n'appartenant pas aux dépôts officiel Debian et qui ne sont pas utile sur le serveur. Il faut bien sûr
garder les paquets nécessaire (Ex. Docker, Postgreql). Utiliser la commande :
apt list --installed "?not(?origin(debian))"
aptitude search '?narrow(?installed, ?not(?origin(Debian)))'
Chercher et supprimer les anciens fichier de configuration devenus inutiles : find /etc -name "*.dpkg-*" -o -name "*.ucf-*" -o -name "*.merge-error"
Vérifier l'absence de paquet dans un mauvais état d'installation :
Redémarrez le système pour installer le dernier noyau Linux et les autres mises à jour : systemctl reboot
Vérifier les sources de paquets extérieurs à la distribution Debian dans : ll /etc/apt/sources.list.d/ et aussi dans le fichier vi /etc/apt/sources.list
Si des sources extérieures de paquets extérieures à Debian sont référencées dans le fichier sources.list les déplacer dans des fichiers indépendant dans le dossier /etc/apt/sources.list.d/.
Il faudra les mettre à jour également vers la nouvelle version de Debian lorsque nous le ferons pour le fichier principal : sources.list ⇒ changement du nom de la version de Debian.
Mettez à jour les dépôts du fichier sources.list vers ceux de la nouvelle version de Debian :
Vérifier que tout a bien été remplacé correctement : vi /etc/apt/sources.list
Remplacer également les occurrences de l'ancien nom de version par le nouveau dans tous les fichiers du dossier /etc/apt/sources.list.d/
⚠ IMPORTANT : Lancer une session screen pour pouvoir retrouver l'état de la mise à jour en cas de déconnexion réseau : screen -S upgrade-system
Mettez à jour les paquets :apt update
Effectuer une mise à niveau minimale (met à niveau tous les paquets existants sans installer ni supprimer d’autres paquets) : apt upgrade --without-new-pkgs
Au cours du processus de mise à niveau, vous recevrez sans doute diverses questions comme « Voulez-vous redémarrer le service ? » ou bien « Que faire avec ce fichier de configuration ? ». D’une manière générale, répondez Oui pour redémarrez les services et appuyez sur Entrée pour conserver les fichier de configurations existants, sauf si vous savez ce que vous faites. Les fichiers de config proposés sont retrouvables par la suite et vont permettre de rechercher les différences pour les appliquer si nécessaire.
Effectuer la mise à niveau complète : apt full-upgrade
Une fois la mise à niveau vers la nouvelle version de Debian terminée, redémarrez votre machine : systemctl reboot
Vérifiez que la nouvelle version de Debian a bien été installé : lsb_release -a et cat /etc/debian_version
Supprimez les paquets obsolètes : apt autoremove --purge
Vérifier que tous les paquets sont bien à jour. Il reste quelques fois des paquets nécessitant une mise à jour :
apt update
apt upgrade
apt full-upgrade
apt autoremove --purge
Plutôt que d'attendre la prochaine mise à jour de Debian, vous pouvez dès maintenant chercher et supprimer les anciens fichier de configuration devenus inutiles : find /etc -name "*.dpkg-*" -o -name "*.ucf-*" -o -name "*.merge-error"
Utilisation de diff pour voir les différences et application des changements aux fichiers de config existants. L'idée est de garder les modifications que nous avons fait et d'introduire les changements effectués par le mainteneur du paquet…
Lorsqu'il n'y a plus que nos changements comme différence, nous pouvons supprimer le fichier .dpkg-*.