Login Logout

Howto Migration Stretch vers Buster

Release Notes amd64 : https://www.debian.org/releases/buster/amd64/release-notes/

Debian Buster ?

Debian Buster aka Debian 10 est une version majeure de Debian publiée le 6 Juillet 2019. Dans les changements notables de la distribution, on note :

  • Apache 2.4.25 → 2.4.38
  • Nginx 1.10 → 1.14
  • PHP 7.0 → 7.3
  • MariaDB 10.1 → 10.3
  • Postgresql 9.6 → 11
  • OpenJDK 8 → 11
  • Noyau Linux 4.9 → 4.19
  • LXC 2 → 3

Actions préalables

Nous conseillons quelques actions qui aideront en cas de problème.

Sauvegarder localement certaines ressources (dans /home/backup/stretch par exemple)

# cat before-upgrade.sh

cd /etc
git add .
git commit -am "Commit balai avant upgrade en Buster"
mkdir -p /home/backup/stretch/
cd /home/backup/stretch
cp -r /etc ./
mkdir -p var/lib/apt
cp -r /var/lib/dpkg ./var/lib/
cp -r /var/lib/apt/extended_states ./var/lib/apt/
dpkg --get-selections "*" > ./current_packages.txt
uptime > uptime.txt
ps auwx > ps.out
pstree -pan > pstree.out
ss -tanpul > listen.out

Mise à jour du système

Éditer les dépôts dans /etc/apt/sources.list et /etc/apt/sources.list.d/*.list pour remplacer stretch par buster.

# cat /etc/apt/sources.list
deb http://mirror.evolix.org/debian buster main
deb http://mirror.evolix.org/debian/ buster-updates main
deb http://security.debian.org/debian-security buster/updates main

# cat /etc/apt/sources.list.d/evolix_public.list
deb http://pub.evolix.net/ buster/
# sed -i 's/stretch/buster/g' /etc/apt/sources.list /etc/apt/sources.list.d/*.list

Si il y a des backports… les désactiver car en général ils ne sont plus nécessaires ! (si vraiment ils doivent être conservés, à mettre dans /etc/apt/preferences.d/0-backports-defaults et s’assurer d’un pinning correct)

Puis mettre à jour le cache APT avec la commande :

# apt update

Commencer par télécharger l’ensemble des paquets qui devront être installés (afin de limiter le temps effectif d’installation).

# apt dist-upgrade --download-only

Faire ensuite une mise à niveau “simple”, pour appliquer les mises à jour triviales :

# apt upgrade

Attention, si MySQL/MariaDB est installé, il faut stopper les instances supplémentaires car non gérées lors de la mise à jour (et cela va casser avec There is a MySQL server running, but we failed in our attempts to stop it) :

# mysqld_multi stop

Ensuite, appliquer les mises à jour non triviales (nécessitant des changements de paquets dépendants, des suppressions…) afin d’avoir un œil plus précis sur ce qui sera fait, avant de valider :

# apt dist-upgrade

Puis lancer le nettoyage des vieux packages en lisant attentivement la liste… en cas de doute, réinstaller le paquet !

# apt autoremove

Enfin, il faut redémarrer sur le nouveau noyau Linux installé :

# reboot

PATH / su

Lorsque l’on utilise su cela ne change plus automatiquement le PATH. Soit il faut prendre l’habitude faire su -, soit il faut ajouter ALWAYS_SET_PATH yes dans le fichier /etc/login.defs (mais cela génère un message d’erreur pour un certain nombre d’applications…)

Pour plus d’informations, voir /usr/share/doc/util-linux/NEWS.Debian.gz ou http://bugs.debian.org/918754

MariaDB

** ToDo **

Remarque: MariaDB 10.2 a introduit un changement de la valeur de SQL_MODE, avec notamment l’ajout de STRICT_TRANS_TABLES qui vas rendre MariaDB plus strict sur les transactions. Il se peut que, dans certains cas, l’activation de ce mode soit problématique pour des applications assez anciennes.

X.Org

En cas de clavier/souris inactif, il peut être nécessaire d’ajouter l’utilisateur dans le groupe input