============= Upgrade HOWTO (c) Nicolas Kovacs ============= Dernière révision : 12 février 2016 Ce HOWTO décrit la mise à jour de Slackware Linux vers la prochaine version. Il a été testé avec succès sur Slackware 13.37, 14.0 et 14.1. * Introduction * Documentation * Télécharger la nouvelle version de Slackware * Faire le ménage et élaguer le système * Mettre à jour le système de base * Touches finales Introduction ------------ Lors de la publication d'une nouvelle version de Slackware, il est toujours préférable de procéder à une installation fraîche du système. Ceci étant dit, il se peut que l'on préfère mettre à jour le système directement sans tout réinstaller. Ce guide vous montre comment vous y prendre sans vous tirer dans le pied. Notre approche consistera à élaguer le système existant dans un premier temps, en supprimant l'ensemble des paquets tiers et même les groupes de paquets qui ne sont pas strictement essentiels. Ce minimum syndical sera ensuite mis à jour, puis réinstallé pas à pas. Documentation ------------- Chaque nouvelle version de Slackware contient deux documents détaillés pour la mise à jour depuis la version précédente. Ces documents se situent à la racine de l'arborescence des fichiers : * UPGRADE.TXT * CHANGES_AND_HINTS.TXT En dehors de cela, Eric Hameleers a rédigé un guide de mise à jour simplifié "Upgrading Slackware to a New Release" : * http://docs.slackware.com/howtos:slackware_admin:systemupgrade Ce HOWTO est une synthèse de ces trois documents, enrichi d'une série de petites astuces personnelles. Télécharger la nouvelle version de Slackware -------------------------------------------- Créer un répertoire qui recevra la nouvelle version : # mkdir /root/slackware{64}-$VERSION Télécharger ou copier les groupes de paquets A, AP, D, L et N vers ce répertoire (entre 650 et 700 Mo au total) : # cd slackware{64}-$VERSION # ncftp mirror.switch.ch ncftp > cd mirror/slackware/slackware{64}-$VERSION/slackware{64}/ ncftp > get -R a ap d l n ncftp > bye Faire le ménage et élaguer le système ------------------------------------- Passer en niveau d'exécution 3. # init 3 Redéfinir temporairement les variables d'environnement LANG et LC_COLLATE : # LANG=C # LC_COLLATE=C # export LANG LC_COLLATE /!\ Cette redéfinition temporaire évite des erreurs lors de la mise à jour des paquets essentiels comme glibc-solibs, pkgtools, tar, xz et findutils. Sauvegarder la configuration actuelle de la machine : # mkdir /root/config # cp -R /etc /var/named /root/config/ Arrêter et désactiver les services inutiles pour ne garder que le strict minimum : # cd /etc/rc.d # ./rc.fuse stop # ./rc.hald stop (Slackware 13.37) # ./rc.messagebus stop # ./rc.inetd stop # ./rc.alsa stop # ./rc.yp stop (Slackware 13.37) # chmod -x rc.fuse # chmod -x rc.hald (Slackware 13.37) # chmod -x rc.messagebus # chmod -x rc.inetd # chmod -x rc.alsa # chmod -x rc.yp (Slackware 13.37) /!\ Bien évidemment, on désactivera également les services réseau classiques comme rc.httpd, rc.dnsmasq, etc. Sur un système 64-bits, supprimer d'éventuels paquets multilib. Désactiver les dépôts tiers et supprimer les paquets non natifs : # slackpkg clean-system Désinstaller d'éventuels drivers vidéo propriétaires. Réduire le système en supprimant les groupes de paquets E, F, K, KDE, KDEI, T, TCL, X, XAP et Y. On gardera les groupes de paquets A, AP, D, L et N : # slackpkg remove e f k kde kdei t tcl x xap xfce y /!\ Le groupe de paquets XFCE existe depuis Slackware 14.0. Pendant que ça mouline, on a largement le temps d'aller boire un café. Mettre à jour le système de base -------------------------------- Aller dans le répertoire vers lequel on a téléchargé la nouvelle version : # cd /root/slackware{64}-$VERSION Tout d'abord, mettre à jour les bibliothèques partagées Glibc : # upgradepkg a/glibc-solibs-*.t?z Ensuite, mettre à jour le gestionnaire de paquets et ses outils : # upgradepkg a/pkgtools-*.tgz # upgradepkg a/tar-*.tgz # upgradepkg a/xz-*.tgz # upgradepkg a/findutils-*.txz Mettre à jour l'ensemble des paquets en installant les nouveaux paquets : # upgradepkg --install-new */*.t?z Sur un Xeon Quad Core en RAID 1, l'opération dure près de 25 minutes. Reconfigurer 'slackpkg' : # cd /etc/slackpkg # mv mirrors.new mirrors Choisir un miroir, par exemple : --8<---------- /etc/slackpkg/mirrors ----------------------------------------- # FINLAND (FI) ftp://elektroni.phys.tut.fi/slackware{64}-$VERSION/ --8<-------------------------------------------------------------------------- Mettre à jour les informations sur les paquets disponibles : # slackpkg update Supprimer les paquets obsolètes # slackpkg clean-system /!\ Garder le paquet 'user-settings-console' ! Mettre à jour le système de base : # slackpkg upgrade-all Dans un premier temps, garder les configurations existantes : (K)eep the old files and consider .new files later Créer la liste des fichiers de configuration mis à jour : # find /etc /var /usr -name '*.new' > /root/new-config.txt Remplacer à la louche les fichiers de configuration existants : # slackpkg new-config (O)verwrite all old files with the new ones. The old files will be stored with the suffix .orig Sur une installation en software RAID, reconfigurer la grappe de disques : # mdadm --examine --scan > /etc/mdadm.conf Vérifier la nouvelle version du noyau : # ls -l /boot/vmlinuz-generic-* -rw-r--r-- 1 root root ... /boot/vmlinuz-generic-$KERNEL Configurer l'initrd pour le nouveau noyau en indiquant manuellement la version du nouveau noyau dans '/etc/mkinitrd.conf' : --8<---------- /etc/mkinitrd.conf -------------------------------------------- KERNEL_VERSION="$KERNEL" --8<-------------------------------------------------------------------------- Ou alors : --8<---------- /etc/mkinitrd.conf -------------------------------------------- KERNEL_VERSION="$KERNEL-smp" --8<-------------------------------------------------------------------------- Construire l'initrd : # mkinitrd -F Démarrer sur le nouveau noyau GENERIC : --8<---------- /etc/lilo.conf ------------------------------------------------ ... image = /boot/vmlinuz-generic{-smp}-$KERNEL{-smp} initrd = /boot/initrd.gz root = /dev/sda3 label = Linux read-only --8<-------------------------------------------------------------------------- Prendre en compte la nouvelle configuration : # lilo Sur une machine distante, il faudra éventuellement autoriser l'accès SSH pour root : --8<---------- /etc/ssh/sshd_config ------------------------------------------ ... PermitRootLogin yes ... --8<-------------------------------------------------------------------------- Croiser les doigts et redémarrer : # reboot Touches finales --------------- Vérifier ce qui reste : # find /etc /var/ /usr -name '*.new' Les fichiers suivants devront être fusionnés : * /etc/passwd * /etc/shadow * /etc/group /!\ Voir le Vimdiff-HOWTO pour plus de détails. Reconfigurer manuellement : * /etc/rc.d/rc.inet1.conf * /usr/share/vim/vimrc Installer les groupes de paquets manquants : # slackpkg install f k t tcl x y Réactiver les services déactivés : # cd /etc/rc.d # chmod +x rc.fuse rc.messagebus rc.inetd Une fois que tout fonctionne correctement, on peut faire un peu de ménage : * /etc/modprobe.d/*.conf * /etc/rc.d/rc.hald * /etc/rc.d/rc.modules-$OLDKERNEL * /root/config * /root/new-config.txt * /root/slackware{64}-$VERSION Et enfin : # find /etc -name '*.orig' -exec rm -f \{} \; ------------------------------------------------------------------------------ # vim: syntax=txt