wiki/HowtoDebian/MigrationStretchBuster.md

263 lines
7.7 KiB
Markdown
Raw Normal View History

2019-07-11 15:49:40 +02:00
---
categories: web
title: 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
2019-12-22 13:37:03 +01:00
* CUPS 2.2.1 → 2.2.10
2021-06-01 17:50:49 +02:00
* RabbtiMQ 3.6.6 → 3.7.8
2019-07-11 15:49:40 +02:00
## 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/
~~~
2019-07-12 15:34:53 +02:00
~~~
# sed -i 's/stretch/buster/g' /etc/apt/sources.list /etc/apt/sources.list.d/*.list
~~~
2019-07-11 15:49:40 +02:00
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
~~~
2020-08-12 20:47:16 +02:00
*Attention, si il y a des instances LXC, il faut les stopper avant les mises à jour !*
2019-07-11 15:49:40 +02:00
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
~~~
2019-09-18 00:30:46 +02:00
2019-10-05 22:02:56 +02:00
## PATH / su
2019-09-18 00:30:46 +02:00
Lorsque l'on utilise `su` cela ne change plus automatiquement le PATH.
2019-10-05 22:02:56 +02:00
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...)
2019-09-18 00:30:46 +02:00
Pour plus d'informations, voir `/usr/share/doc/util-linux/NEWS.Debian.gz` ou <http://bugs.debian.org/918754>
2019-10-05 22:02:56 +02:00
## MariaDB
2019-09-18 00:30:46 +02:00
2022-05-30 11:41:03 +02:00
Si le check_mysql indique une erreur en rapport avec `libmariadb.so.3` il faut installer le paquet `libmariadb3`.
~~~
# /usr/lib/nagios/plugins/check_mysql -H localhost -f /etc/mysql/debian.cnf
/usr/lib/nagios/plugins/check_mysql: error while loading shared libraries: libmariadb.so.3: cannot open shared object file: No such file or directory
~~~
** ToDo **
2019-09-18 00:30:46 +02:00
> Remarque: MariaDB 10.2 a introduit un changement de la valeur de [`SQL_MODE`](https://mariadb.com/kb/en/library/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.
2019-09-18 00:30:46 +02:00
2019-10-05 22:02:56 +02:00
## X.Org
En cas de clavier/souris inactif, il peut être nécessaire d'ajouter l'utilisateur dans le groupe `input`
2019-11-05 11:25:38 +01:00
## PHP
Il faut parfois forcer le passage à PHP 7.3 :
~~~
# apt remove libapache2-mod-php7.0 && a2enmod php7.3 && /etc/init.d/apache2 restart
~~~
puis nettoyer les anciens paquets php7.0-*
## PHPMyAdmin
2022-03-25 15:15:20 +01:00
Garder en tête que Buster n'a plus de paquet PHPMyAdmin et que la version utilisé9 dans stretch
n'est pas compatible avec les PHP 7.3.x. Il faut donc le mettre à jour manuellement.
2020-01-16 13:58:22 +01:00
## Nautilus sous XFCE
Si vous avez de la difficulté à ouvrir des fichiers dans Nautilus sous XFCE, cela peut venir d'un problème avec `exo-utils`.
Un contournement est disponible ici : <https://askubuntu.com/questions/968857/xubuntu-17-10-nautilus-doesnt-open-files>
## LXC et AppArmor
2020-07-03 03:46:28 +02:00
Si des conteneurs LXC sont configurés, il faut installer lxc-templates et apparmor afin d'installer des configurations nécessaire à leur fonctionnement.
2020-08-12 21:33:47 +02:00
Et il faut mettre à jour la config de tous les conteneurs :
~~~
# lxc-update-config -c /var/lib/lxc/foo/config
~~~
2020-07-03 03:46:28 +02:00
## PostgreSQL
Il faut migrer manuellement.
~~~
# pg_dropcluster --stop 11 main
# pg_upgradecluster 9.6 main
# pg_dropcluster 9.6 main
2020-07-03 04:18:59 +02:00
~~~
2021-06-01 17:50:49 +02:00
## RabbitMQ
Il faut dé commenter dans /etc/rabbitmq/rabbitmq-env.conf "NODE_IP_ADDRESS" et "RABBITMQ_NODENAME". Autrement rabbitmq-server ne se lancera pas.
2020-07-03 04:18:59 +02:00
## usrmerge
Les installations fraîches de Debian Buster ont un `/usr` fusionné.
2020-07-03 04:20:34 +02:00
Les répertoires `/{bin,sbin,lib}/` deviennent des liens symboliques vers `/usr/{bin,sbin,lib}/`.
2020-07-03 04:18:59 +02:00
Si on veut faire la fusion il faut installer le paquet `usrmerge`.
```
# apt install usrmerge
2020-07-03 04:41:48 +02:00
```
## Écosystème Ruby on Rails
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.
~~~
2020-07-03 04:44:37 +02:00
$ RAILS_ENV=production bundle install --redownload
2020-07-03 04:53:15 +02:00
~~~
## Squid
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
2020-07-15 10:49:31 +02:00
```
## Iptables
La commande iptables change entre Debian 9 et 10. Si on rencontre des soucis de firewall en cours de route on peut utiliser la commande `iptables-legacy` et éventuellement purger les tables de NAT avec `iptables-legacy -t nat -F`.
## libvirt
~~~
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
2020-08-12 21:33:47 +02:00
~~~
2021-02-12 14:53:53 +01:00
## 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
~~~
2022-07-05 15:23:13 +02:00
## Dovecot
Voir [cette section du HowtoDovecot](/HowtoDovecot#erreur-varrundovecotstats-writer-failed-permission-denied).
## ProFTPD
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
2022-07-05 15:23:13 +02:00
## Bind
2022-03-18 16:12:09 +01:00
En cas de souci de redémarrage de Bind, voir : <https://wiki.evolix.org/HowtoBind#probl%C3%A8mes-de-permissions-avec-chroot>
2022-05-23 12:40:22 +02:00
## NFS
Si un client monte un volume NFS en NFSv3, il peut être nécessaire dactivé le service `rpc-statd`, cf. [la page dédiée](/HowtoNFS#service-rpc-statd)