1er jet pour UpgradeBusterBullseye
This commit is contained in:
parent
de7f5bc030
commit
47b3a74d30
253
HowtoDebian/MigrationBusterBullseye.md
Normal file
253
HowtoDebian/MigrationBusterBullseye.md
Normal file
|
@ -0,0 +1,253 @@
|
|||
---
|
||||
categories: web
|
||||
title: Howto Migration Buster vers Bullseye
|
||||
...
|
||||
|
||||
Release Notes amd64 : <https://www.debian.org/releases/testing/amd64/release-notes/>
|
||||
|
||||
## Debian Bullseye ?
|
||||
|
||||
Debian Bullseye aka Debian 11 est une version majeure de Debian bientôt publiée. Dans les changements notables de la distribution, on note :
|
||||
|
||||
* Apache : 2.4.38 → 2.4.46
|
||||
* Serveur DNS BIND : 9.11 → 9.16
|
||||
* Cryptsetup : 2.1 → 2.3
|
||||
* Dovecot MTA : 2.3.4 → 2.3.13
|
||||
* GCC : 8.3 → 10.2
|
||||
* GnuPG : 2.2.12 → 2.2.20
|
||||
* Bibliothèque C GNU : 2.28 → 2.31
|
||||
* Image du noyau Linux : Série 4.19 → Série 5.10
|
||||
* MariaDB : 10.3 → 10.5
|
||||
* Nginx : 1.14 → 1.18
|
||||
* OpenJDK : 11 → 11
|
||||
* OpenSSH : 7.9p1 → 8.4p1
|
||||
* Perl : 5.28 → 5.32
|
||||
* PHP : 7.3 → 7.4
|
||||
* Postfix MTA : 3.4 → 3.5
|
||||
* PostgreSQL : 11 → 13
|
||||
* Python 3 : 3.7.3 → 3.9.1
|
||||
* Samba : 4.9 → 4.13
|
||||
* Vim : 8.1 → 8.2
|
||||
|
||||
## 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 Bullseye"
|
||||
mkdir -p /home/backup/buster/
|
||||
cd /home/backup/buster
|
||||
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 _buster_ par _bullseye_.
|
||||
|
||||
~~~
|
||||
# cat /etc/apt/sources.list
|
||||
deb http://mirror.evolix.org/debian bullseye main
|
||||
deb http://mirror.evolix.org/debian/ bullseye-updates main
|
||||
deb http://security.debian.org/debian-security bullseye-security main
|
||||
|
||||
# cat /etc/apt/sources.list.d/evolix_public.list
|
||||
deb http://pub.evolix.net/ bullseye/
|
||||
~~~
|
||||
|
||||
~~~
|
||||
# sed -i 's/buster/bullseye/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
|
||||
~~~
|
||||
|
||||
*Attention, si il y a des instances LXC, il faut les stopper avant les mises à jour !*
|
||||
|
||||
Faire ensuite une mise à niveau sans nouveaux paquets, pour appliquer les mises à jour triviales :
|
||||
|
||||
~~~
|
||||
# apt upgrade --without-new-pkgs
|
||||
~~~
|
||||
|
||||
Faire ensuite une mise à niveau avec nouveaux paquets mais sans désinstallations :
|
||||
|
||||
~~~
|
||||
# apt upgrade --with-new-pkgs
|
||||
~~~
|
||||
|
||||
**TODO: à vérifier**
|
||||
|
||||
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 full-upgrade
|
||||
~~~
|
||||
|
||||
Puis lancer le nettoyage des vieux paquets 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: voir si des adaptations sont nécessaires**
|
||||
|
||||
## PHP
|
||||
|
||||
Il faut parfois forcer le passage à PHP 7.4 :
|
||||
|
||||
~~~
|
||||
# apt remove libapache2-mod-php7.3 && a2enmod php7.4 && /etc/init.d/apache2 restart
|
||||
~~~
|
||||
|
||||
puis nettoyer les anciens paquets `php7.3-*`
|
||||
|
||||
## PHPMyAdmin
|
||||
|
||||
phpMyAdmin a fait son retour dans les paquets Debian. Si vous l'aviez installé par les sources en Debian 10, vous pouvez le désinstaller et remettre le paquet.
|
||||
|
||||
## LXC et AppArmor
|
||||
|
||||
**TODO: à vérifier, probablement toujours d'actualité**
|
||||
|
||||
Si des conteneurs LXC sont configurés, il faut installer lxc-templates et apparmor afin d'installer des configurations nécessaire à leur fonctionnement.
|
||||
|
||||
Et il faut mettre à jour la config de tous les conteneurs :
|
||||
|
||||
~~~
|
||||
# lxc-update-config -c /var/lib/lxc/foo/config
|
||||
~~~
|
||||
|
||||
## PostgreSQL
|
||||
|
||||
**TODO: à vérifier, adapter les versions si toujours d'actualité**
|
||||
|
||||
Il faut migrer manuellement.
|
||||
|
||||
~~~
|
||||
# pg_dropcluster --stop 11 main
|
||||
# pg_upgradecluster 9.6 main
|
||||
# pg_dropcluster 9.6 main
|
||||
~~~
|
||||
|
||||
## usrmerge
|
||||
|
||||
Les installations fraîches de Debian Bullseye (et Buster) ont un `/usr` fusionné.
|
||||
Les répertoires `/{bin,sbin,lib}/` deviennent des liens symboliques vers `/usr/{bin,sbin,lib}/`.
|
||||
Si on veut faire la fusion il faut installer le paquet `usrmerge`.
|
||||
|
||||
```
|
||||
# apt install usrmerge
|
||||
```
|
||||
|
||||
## Écosystème Ruby on Rails
|
||||
|
||||
**TODO: à vérifier, probablement toujours d'actualité**
|
||||
|
||||
On peut avoir des erreurs avec des gems.
|
||||
|
||||
~~~
|
||||
bundle[3404]: LoadError: libmariadbclient.so.18: cannot open shared object file: No such file or directory -
|
||||
~~~
|
||||
|
||||
Il faut mettre à jour si le projet utilise bundle.
|
||||
|
||||
~~~
|
||||
$ RAILS_ENV=production bundle install --redownload
|
||||
~~~
|
||||
|
||||
## Squid
|
||||
|
||||
**TODO: à vérifier, probablement obsolète**
|
||||
|
||||
Il faut s'assurer d'avoir l'override systemd.
|
||||
|
||||
```
|
||||
# systemctl edit squid
|
||||
# systemd override for Squid
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=/usr/sbin/squid -sYC -f /etc/squid/evolinux-defaults.conf
|
||||
# systemctl daemon-reload
|
||||
# systemctl restart squid
|
||||
```
|
||||
|
||||
## libvirt
|
||||
|
||||
**TODO: à vérifier, probablement toujours d'actualité**
|
||||
|
||||
~~~
|
||||
Errors were encountered while processing:
|
||||
libvirt-daemon-system
|
||||
~~~
|
||||
|
||||
Il faut stopper `virtlogd-admin.socket` puis relancer l'upgrade.
|
||||
|
||||
~~~
|
||||
# systemctl stop virtlogd-admin.socket
|
||||
# apt install -f
|
||||
~~~
|
||||
|
||||
## Postfix
|
||||
|
||||
Il faut assurer que `smtpd_relay_restrictions` soit présent dans `/etc/postfix/main.cf`.
|
||||
Si l'option n'est pas présente, ajouter :
|
||||
|
||||
~~~
|
||||
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
|
||||
~~~
|
||||
|
||||
## ProFTPD
|
||||
|
||||
**TODO: à vérifier, probablement obsolète**
|
||||
|
||||
La version 1.3.6 a un bug pour lister les répertoires avec plus de 10k fichiers :
|
||||
https://github.com/proftpd/proftpd/issues/863
|
||||
Un contournement est de désactiver le "cachefs" de ProFTPD comme suggéré ici :
|
||||
http://bugs.proftpd.org/show_bug.cgi?id=4360#c14
|
||||
|
Loading…
Reference in a new issue