Passage de Debian Stretch à Buster

Ayant la manip à faire sur pas mal de serveurs, et comme ce n'est pas une bonne idée d'automatiser les mises à jours majeures (chaque installation a ses particularités), ce qui suit est une recette résumant les consignes de mise à jour officielles de Debian.

  1. Réaliser un snapshot des VM (et prier sur les hyperviseurs).
  2. Lancer screen (ça va être long).
  3. Enregistrer la session.
    • script -t 2>~/upgrade-buster1.time -a ~/upgrade-buster1.script
    • 1 sera à incrémenter si on redémarre, relance le script, etc.
    • less -R ~/upgrade-buster1.script permet de relire tranquillement ce qui a défilé.
    • exit à la fin de la mise à jour (ou si ça redémarre, ça exit aussi !).
  4. Encore sous Stretch, réaliser un apt update && apt upgrade : plus c'est à jour, moins on a de soucis ensuite. apt autoremove et apt clean contribueront aussi à avoir une base propre.
  5. Vérifier qu'il n'y a pas des sources alternatives sudo aptitude search '~i(!~ODebian)' .
  6. dpkg --audit et apt-mark showhold pour vérifier qu'il n'y a pas des paquets gelés, avec des soucis, etc.
  7. Modifier /etc/apt/sources.list
  8. apt update && apt upgrade (upgrade en deux temps) : ne met à jour que le minimum.
  9. apt full-upgrade
    • S'il y a besoin de geler des paquets : apt-mark hold package_name. Mais geler des paquets risque de rajouter du bazar, donc à réserver en cas de rapport de bug vraiment inquiétant.
  10. Régler les problèmes s'il y en a, puis redémarrer la machine afin de prendre en compte le changement de noyau et le reste (et de vérifier si ça reboot, grub est parfois taquin).
  11. Vérifier que les services marchent correctement.
  12. Nettoyer les restes
    • dpkg -l | awk '/^rc/ { print $2 }' pour lister les paquets supprimés ayant laissé des fichiers de configuration
    • apt purge $(dpkg -l | awk '/^rc/ { print $2 }') pour tous les purger uniquement si la liste présente des paquets donc la config ne nous intéresse pas.
    • Chercher et purger les paquets obsolètes aptitude search '~o' && aptitude purge '~o'

PHP

Attention avec php et apache, il faut activer le module de la nouvelle version de php dans apache sinon tout plante.

sudo a2enconf php7.3-cgi
sudo a2enmod php7.3
sudo service apache2 restart

Pour FPM

a2enmod proxy_fcgi setenvif
a2enconf php7.3-fpm