Upgrader son Serveur Debian Wheezy
Ce post présente la mise à jour d’une Debian Wheezy vers Jessie. Il s’appuie sur la documentation officielle de Debian et en est une version raccourcie. Mais ce n’est pas pour autant une raison de ne pas aller la lire.
Faites avant tout un backup des données du serveur et prévoyez 2 ou 3 heures en partant du principe que vous allez devoir tout réinstaller. Normalement, tout devrait bien se passer, mais on n’est jamais trop prudent…
Ain’t broken, don’t fix it !
Wheezy est une version stable dont la fin de support n’est pas encore annoncée. Même s’il est tentant d’avoir son serveur sous la toute dernière version, il est important de se rappeler qu’un Wheezy opérationnel est toujours plus performant qu’un Jessie vautré ! 🙄
C’est aussi pour cette raison que j’ai attendu près d’un an avant de réaliser la mise à jour, mieux vaut laisser les autres essuyer les plâtres. Exemple typique, certains ont découvert après l’upgrade que le root-login avec mot de passe avait été désactivé automatiquement !
Oups…
Un Serveur Propre avant l’Upgrade
C’est bien la moindre des choses !? Assurez-vous qu’il n’y a aucun problème, qu’il n’existe pas des paquets à moitié installés, ou autres problèmes de dépendances.
1 | root@server:~# dpkg --audit |
Préparer les Sources d’APT
L’ancien fichier de sources devrait ressembler à ça :
1 2 3 4 5 6 | root@server:~# cat /etc/apt/sources.list deb http://debian.proxad.net/debian/ wheezy main non-free deb-src http://debian.proxad.net/debian/ wheezy main non-free deb http://security.debian.org/ wheezy/updates main deb-src http://security.debian.org/ wheezy/updates main |
Là il s’agit simplement de remplacer wheezy par jessie.
1 2 3 4 5 6 | root@server:~# cat /etc/apt/sources.list deb http://debian.proxad.net/debian/ jessie main non-free deb-src http://debian.proxad.net/debian/ jessie main non-free deb http://security.debian.org/ jessie/updates main deb-src http://security.debian.org/ jessie/updates main |
Ensuite, passez en commentaire toutes les autres sources Apt, normalement dans /etc/apt/sources.list.d/. Ici un exemple avec dotdeb.
1 2 3 4 5 6 7 8 | root@server:~# cat /etc/apt/sources.list.d/dotdeb.list # Dot deb Repository. See www.dotdeb.org #deb http://packages.dotdeb.org wheezy all #deb-src http://packages.dotdeb.org wheezy all # Dot deb Repository for PHP 5.5.0 #deb http://packages.dotdeb.org wheezy-php55 all #deb-src http://packages.dotdeb.org wheezy-php55 all |
C’est important car la mise à niveau n’a pas été testée avec les sources non-debian. Bien sûr vous pourrez les réactiver après l’upgrade.
Vérifier l’Espace Disque
D’expérience, c’est déjà assez pénible de rattraper une simple mise à jour plantée à cause d’une saturation de la partition. Si en plus le système est au milieu d’un upgrade, la catastrophe est assurée…
1 2 3 4 5 6 7 8 9 10 | root@server:~# apt-get update [...] Fetched 19.3 MB in 1s (12.7 MB/s) Reading package lists... Done root@server:~# apt-get -o APT::Get::Trivial-Only=true dist-upgrade [...] 399 upgraded, 164 newly installed, 7 to remove and 0 not upgraded. Need to get 299 MB of archives. After this operation, 436 MB of additional disk space will be used. E: Trivial Only specified but this is not a trivial operation. |
Maintenant, comparez avec un rapide df -h
. Prévoyez au moins le double pour être tranquille.
1 2 3 4 5 6 7 8 9 10 11 12 13 | root@server:~# df -h Filesystem Size Used Avail Use% Mounted on rootfs 20G 3.9G 15G 22% / udev 10M 0 10M 0% /dev tmpfs 3.2G 356K 3.2G 1% /run /dev/md1 20G 3.9G 15G 22% / tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 6.7G 0 6.7G 0% /dev/shm /dev/mapper/vg-vardata 39G 1.6G 35G 5% /var /dev/mapper/vg-logs 4.9G 383M 4.2G 9% /var/log /dev/mapper/vg-home 39G 19G 19G 51% /home /dev/mapper/vg-mysql 197G 656M 187G 1% /var/lib/mysql |
C’est Parti !
Si vous avez le moindre doute, il est encore temps de tout arrêter !
Debian recommande de procéder en deux étapes afin de limiter les risques de conflits.
1 2 3 4 5 6 | root@server:~# apt-get upgrade [...] 254 upgraded, 0 newly installed, 0 to remove and 145 not upgraded. Need to get 94.9 MB of archives. After this operation, 48.6 MB of additional disk space will be used. Do you want to continue [Y/n]? |
1 2 3 4 5 6 | root@server:~# apt-get dist-upgrade [...] 145 upgraded, 164 newly installed, 7 to remove and 0 not upgraded. Need to get 204 MB of archives. After this operation, 387 MB of additional disk space will be used. Do you want to continue [Y/n]? |
Une fois le apt-get dist-upgrade
terminé, la mise à niveau « formelle » est finie, ce qui doit normalement se vérifier ainsi :
1 2 3 4 5 6 7 8 9 | root@server:~# cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 8 (jessie)" NAME="Debian GNU/Linux" VERSION_ID="8" VERSION="8 (jessie)" ID=debian HOME_URL="http://www.debian.org/" SUPPORT_URL="http://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" |
Normalement, surtout si vous n’avez pas trop customisé le système, tout devrait marcher du premier coup. Ceci dit…
Éventuels Problèmes en Cours de Route
Ce n’est pas en soit un message d’erreur, mais vous pouvez être sûr d’en voir plein pendant la mise à niveau.
1 2 3 4 5 6 7 8 9 10 | Configuration file '/etc/issue' ==> Modified (by you or by a script) since installation. ==> Package distributor has shipped an updated version. What would you like to do about it ? Your options are: Y or I : install the package maintainer's version N or O : keep your currently-installed version D : show the differences between the versions Z : start a shell to examine the situation The default action is to keep your current version. *** issue (Y/I/N/O/D/Z) [default=N] ? |
Examinez systématiquement les différences (option D), mais dans le doute, utilisez la nouvelle version quitte à y réinjecter plus tard vos paramètres customisés. De toute façons, apt conserve toujours l’ancienne copie en y rajoutant l’extension « .dpkg-old ».
Ensuite, un des nouveaux packages php5-json rentrait en conflit avec un ancien package php5-dev fourni par dotdeb… Bilan php5-json n’était pas installé et interrompait la mise à niveau.
1 2 | dpkg: error processing archive /var/cache/apt/archives/php5-json_1.3.6-1_amd64.deb (--unpack): trying to overwrite '/usr/include/php5/ext/json/php_json.h', which is also in package php5-dev 5.5.33-1~dotdeb+7.1 |
J’ai réglé le problème en dégageant l’ancien php5-dev, en forçant la résolution des dépendances (apt-get -f) et en relançant la mise à niveau.
1 2 3 4 5 6 7 8 9 10 11 12 13 | root@server:~# dpkg -P php5-dev (Reading database ... 39361 files and directories currently installed.) Removing php5-dev (5.5.33-1~dotdeb+7.1) ... Processing triggers for man-db (2.7.0.2-5) ... [...] root@server:~# apt-get -f install Reading package lists... Done Building dependency tree Reading state information... Done Correcting dependencies... Done [...] root@server:~# apt-get dist-upgrade [...] |
Vous allez probablement rencontrer d’autres erreurs différentes, mais au moins, j’espère que cela donnera quelques idées pour essayer de les résoudre.
Nettoyage Post-installation
Une fois tous les problèmes d’installation réglés, il ne reste plus qu’à nettoyer le système.
La première commande va dégager les dépendances qui ne servent plus.
1 | root@server:~# apt-get autoremove |
La deuxième commande va purger les paquets qui ont été supprimés. Notamment, les anciens scripts init.d sont connus pour causer des problèmes.
1 | root@server:~# apt-get purge $(dpkg -l | awk '/^rc/ { print $2 }') |
Reconfigurer ses sources.list
Pour revenir sur l’exemple des sources de Dotdeb désactivées avant la mise à niveau :
1 2 3 4 | root@server:~# cat /etc/apt/sources.list.d/dotdeb.list # Dot deb Repository. See www.dotdeb.org deb http://packages.dotdeb.org jessie all deb-src http://packages.dotdeb.org jessie all |
Suivi bien sûr d’un apt-get update && apt-get upgrade
.
Ultime Stress
Maintenant il ne reste plus qu’à rebooter et prier pour que son serveur remonte bien. 🙂 Mais si tout s’est bien passé, vous êtes maintenant l’heureux propriétaire d’un serveur Debian Jessie.
Normalement, toute la procédure décrite ici est assez fiable. Mais encore une fois, je ne peux que recommander de lire attentivement la documentation officielle de Debian avant de se lancer dedans. Vous êtes prévenus.
Une pensée sur “Upgrader son Serveur Debian Wheezy”