Voici mon lots de commandes pour une mise à niveau Debian, dans le cas d'un serveur qui a été bien maintenu depuis le début. == De Bullseye vers Bookworm == || '''ATTENTION''' : la documentation officielle est sur [[Debian/Bookworm]], '''NE PAS UTILISER CES COMMANDES SANS LES COMPRENDRE !''' || {{{#!shell # Problèmes à connaitre : https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.fr.html # Mise à niveau : https://www.debian.org/releases/bookworm/amd64/release-notes/ch-upgrading.fr.html # 4.2.1 grep -q '^11\.' /etc/debian_version || echo -e "\n*** MISE À NIVEAU SEULEMENT POUR Debian 11 (Bullseye) ***\n" # 4.2.6 echo "Liste des paquets non Debian risquant de bloquer la mise à niveau :"; apt list '?narrow(?installed, ?not(?origin(Debian)))'; echo "Fin de la liste." # 5.1.10 dpkg -l slapd | grep -q ^.i && echo "Attention à migrer les BDD slapd vers mdb (au lieu de bdb ou hdb) avant la mise à niveau Debian." # 4.2.13 apt-mark showhold ; aptitude search "~ahold" ; dpkg --get-selections | grep 'hold$' # 4.2.5 aptitude search "~o" # 4.2.6 apt list '?narrow(?installed, ?not(?origin(Debian)))' # ou bien: apt-forktracer | sort # 4.2.4 aptitude # mode interactif => touche [g] pour vérifier/corriger les actions en attente aptitude update ; aptitude safe-upgrade ; aptitude clean # 4.2.7 & 4.5.5 & A.3 find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error' # 4.2.12 apt install gpgv # 4.1.1 export LANG=C.UTF-8 mkdir ~/bullseye cp -a /etc ~/bullseye/ cp -a /var/lib/dpkg ~/bullseye/_var_lib_dpkg cp -a /var/lib/apt/extended_states ~/bullseye/_var_lib_apt_extended_states cp -a /var/lib/aptitude/pkgstates ~/bullseye/_var_lib_aptitude_pkgstates # 4.2.13 dpkg --audit ; dpkg --get-selections "*" > ~/bullseye/dpkg--get-selections.txt apt list --installed > ~/bullseye/apt-list--installed.txt # 4.2.9 sed -i -e '/proposed-updates/s|^|#|' /etc/apt/sources.list # 4.2.10 sed -i -e 's|^|#|' /etc/apt/sources.list.d/*.list # 4.2.11 for f in /etc/apt/preferences /etc/apt/preferences.d/* ; do [ -f "$f" -a -n "$f" ] && mv -v "$f" "$f".dpkg-bullseye && touch "$f" ; done # 4.3 sed -i -e 's|bullseye|bookworm|' /etc/apt/sources.list /etc/apt/sources.list.d/*.list /etc/apt/apt.conf sed -i -e '/bookworm-lts/s|^|#|' /etc/apt/sources.list # 4.2.8 & 5.1.1 sed -i -e 's| non-free$| non-free-firmware|' /etc/apt/sources.list grep -q non-free-firmware /etc/apt/sources.list || sed -i -e '/^deb .* bookworm main/s|$| non-free-firmware|' /etc/apt/sources.list # 4.3.1 cat /etc/apt/sources.list ; echo ; echo "VÉRIFIER LES SOURCES CI-DESSUS" ; echo "ENVISAGER D'UTILISER deb.debian.org (CDN)" ; echo # ne plus conserver les .deb dans le cache après install avec succès echo 'APT::Keep-Downloaded-Packages "false";' > /etc/apt/apt.conf.d/01keep-debs # 4.4.1 script -t 2>~/bullseye/mise-a-niveau-bookworm.time -a ~/bullseye/mise-a-niveau-bookworm.script # rejouer la session : scriptreplay ~/bullseye/mise-a-niveau-bookworm.time ~/bullseye/mise-a-niveau-bookworm.script # 4.4.2 & 4.4.3 apt update ; apt -o APT::Get::Trivial-Only=true full-upgrade ; df --si -x tmpfs -x devtmpfs # plusieurs pistes pour libérer de l'espace disque sur # https://www.debian.org/releases/bookworm/amd64/release-notes/ch-upgrading.fr.html#sufficient-space # 4.4.4 service monit stop # 5.1.23 apt install --no-install-recommends openssh-server # nouveau mode de compression rapide pour initramfs apt install --no-install-recommends zstd # 4.4.5 apt upgrade --without-new-pkgs && apt clean # 4.4.6 apt full-upgrade --no-install-recommends # 4.5.1 # ajouter si indiqué : -o APT::Immediate-Configure=0 # 4.5.3 # ajouter en cas de boucle de dépendance/conflit : -o APT::Force-LoopBreak=1 # 4.7 & 4.8 apt clean ; aptitude search '~i(!~ODebian)' # 4.2.6 & 4.5.5 & A.3 find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error' # 4.7.1 #dpkg -l | awk '/^rc/ { print $2 }' # apt purge $(…) apt list "~c" # apt purge "~c" # 4.8 apt list "~o" # apt purge "~o" # 5.1.9 rm -f /var/log/mail.{info,warn,err}{,.*} /var/log/lpr.log{,.*} /var/log/{messages,debug,daemon.log}{,.*} # 5.2.1 apt install debian-security-support && check-support-status # A.4 grep -q UTF-8 /etc/default/locale || dpkg-reconfigures locales # sortie du sous shell lancé via la commande "script" exit }}} Infos annexes : * si le démarrage échoue sous systemd (4.1.4.2) : * démarrage en mode rescue (paramètre noyau) : `systemd.unit=rescue.target` * démarrage sur un shell (paramètre noyau) : `systemd.unit=emergency.target` * '''ordre SCSI aléatoire : utiliser `/dev/disk/by-path/...` au lieu de `/dev/sd...`''' . ⇒ adapter le `/etc/fstab` en conséquence, en utilisant des UUID (cf `blkid`) plutôt que `/dev/sdX` * `/bin`, `/sbin` et `/lib` sont désormés des liens vers leurs équivalents sous `/usr` * `ntpsec` succède automatiquement à `ntp`, mais `systemd-timesyncd` déjà par défaut pour un simple client NTP (5.1.2) * `rsyslog` n'est plus installé par défaut, car `journalctl` est déjà par défaut et peut le remplacer (5.1.7) * `rsyslog` utilise un horodatage plus précis, ce qui peut nécessiter de réviser les règles `logcheck` (5.1.8) * l'interpréteur Python système est déclaré sous gestion externe et il ne faut donc plus utiliser `pip` directement (5.2.2) : * utiliser `pipx` pour installer une application Python autonome * utiliser `venv` (ou `virtualenv`) pour installer des librairies Python . ⇒ au lieu d'utiliser `pip install --user toto` on utilisera `mkdir -p ~/.venvs && python3 -m venv ~/.venvs/toto && ~/.venvs/toto/bin/python -m pip install toto` * vérifier la prise en charge de VA-API avec `vainfo` et de VDPAU avec `vdpauinfo` (5.2.3) * `systemd-resolved` doit maintenant être installé indépendamment (dans le cas où on l'utilise) (5.2.4) * `adduser` a eu des modifications importantes, cf `/usr/share/doc/adduser/NEWS.Debian.gz` (5.2.7) * `libnss-ldapd` et `libpam-ldapd` succèdent à `libnss-ldap` et `libpam-ldap` (5.3.1) * `dmraid` est maintenant déprécié (5.3.2) * `isc-dhcp-client` est déprécié et peut être remplacé par `udhcpc` ou `systemd-networkd` (ou `NetworkManager`) (5.3.2) * `isc-dhcp-server` est déprécié et sera peut-être remplacé par `isc-kea` dans le futur (5.3.2) == De Buster vers Bullseye == || '''ATTENTION''' : la documentation officielle est sur [[Debian/Bullseye]], '''NE PAS UTILISER CES COMMANDES SANS LES COMPRENDRE !''' || {{{#!shell # réf. : https://www.debian.org/releases/bullseye/amd64/release-notes/ch-upgrading.fr.html # réf. : https://www.debian.org/releases/bullseye/amd64/release-notes/ch-information.fr.html # 4.2.1 grep -q '^10\.' /etc/debian_version || echo -e "\n*** MISE À NIVEAU SEULEMENT POUR Debian 10 (Buster) ***\n" # 4.2.2 nondeb="`aptitude search '?narrow(?installed, ?not(?origin(Debian)))'`" test -n "$nondeb" && echo -e "\nPaquets non Debian risquant de bloquer la mise à niveau :\n$nondeb\n" # 4.2.11 aptitude search "~ahold" ; dpkg --get-selections | grep 'hold$' # 4.2.5 aptitude search "~o" # 4.2.3 aptitude # mode interactif => touche [g] pour vérifier/corriger les actions en attente aptitude update ; aptitude safe-upgrade ; aptitude clean # 4.2.6 & 4.5.5 & A.3 find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error' # 4.1.1 export LANG=C mkdir ~/buster cp -a /etc ~/buster/ cp -a /var/lib/dpkg ~/buster/_var_lib_dpkg cp -a /var/lib/apt/extended_states ~/buster/_var_lib_apt_extended_states cp -a /var/lib/aptitude/pkgstates ~/buster/_var_lib_aptitude_pkgstates # 4.2.11 dpkg --audit ; dpkg --get-selections "*" > ~/buster/dpkg--get-selections.txt # 4.2.8 sed -i -e '/proposed-updates/s|^|#|' /etc/apt/sources.list # 4.2.9 sed -i -e 's|^|#|' /etc/apt/sources.list.d/*.list # 4.2.10 for f in /etc/apt/preferences /etc/apt/preferences.d/* ; do [ -f "$f" -a -n "$f" ] && mv -v "$f" "$f".dpkg-buster && touch "$f" ; done # 4.3 sed -i -e 's|buster|bullseye|' /etc/apt/sources.list /etc/apt/sources.list.d/*.list /etc/apt/apt.conf sed -i -e '/bullseye-lts/s|^|#|' /etc/apt/sources.list # 4.2.7 & 5.1.3 sed -i -e 's| bullseye/updates | bullseye-security |' /etc/apt/sources.list cat /etc/apt/sources.list ; echo ; echo "VÉRIFIER LES SOURCES CI-DESSUS" ; echo # 4.4.1 script -t 2>~/buster/mise-a-niveau-bullseye.time -a ~/buster/mise-a-niveau-bullseye.script # 4.4.2 & 4.4.3 apt update ; apt -o APT::Get::Trivial-Only=true full-upgrade ; df --si -x tmpfs -x devtmpfs # plusieurs pistes pour libérer de l'espace disque sur # https://www.debian.org/releases/bullseye/amd64/release-notes/ch-upgrading.fr.html#sufficient-space # 5.1.23 apt install --no-install-recommends openssh-server # 4.4.4 apt upgrade --without-new-pkgs && apt clean # 4.6.1 dpkg -l "linux-image*" | grep ^ii | grep -i meta apt-cache search linux-image- | grep -i meta | grep -v transition apt install --no-install-recommends linux-image-amd64 #udev initramfs-tools # reboot éventuel ici, il ne sera plus nécessaire ensuite (en principe) # le cas échéant, relancer aussi la commande script, avec d'autres noms de fichiers # 4.4.5 apt full-upgrade --no-install-recommends # 4.5.1 # ajouter si indiqué : -o APT::Immediate-Configure=0 # 4.5.3 # ajouter en cas de boucle de dépendance/conflit : -o APT::Force-LoopBreak=1 # 4.7 & 4.8 apt clean ; aptitude search '~i(!~ODebian)' # 4.2.6 & 4.5.5 & A.3 find /etc -name '*.dpkg-*' -o -name '*.ucf-*' -o -name '*.merge-error' # 4.7.1 #dpkg -l | awk '/^rc/ { print $2 }' # apt purge $(…) aptitude search "~c" # aptitude purge "~c" # 4.8 aptitude search "~o" # A.4 grep -q UTF-8 /etc/default/locale || dpkg-reconfigures locales # 5.2 apt install debian-security-support && check-support-status # ne plus conserver les .deb dans le cache après install avec succès echo 'APT::Keep-Downloaded-Packages "false";' > /etc/apt/apt.conf.d/01keep-debs # sortie du sous shell lancé via la commande "script" exit }}} Infos annexes : * démarrage en mode rescue (paramètre noyau) : systemd.unit=rescue.target * démarrage sur un shell (paramètre noyau) : systemd.unit=emergency.target * '''ordre SCSI aléatoire : utiliser /dev/disk/by-path/... au lieu de /dev/sd...''' . ⇒ adapter le /etc/fstab en conséquence, en utilisant des UUID (cf `blkid`) plutôt que /dev/sdX * Python 2 n'est plus supporté * config' exim4 : il est préférable de re-générer la config' * fail2ban & bsd-mailx : nécessite ajustement, cf [[https://www.debian.org/releases/bullseye/amd64/release-notes/ch-information.fr.html#fail2ban|#5.1.22]] * greffons vim : voir https://sources.debian.org/src/vim-scripts/bullseye/debian/NEWS/ * config' unbound : voir https://sources.debian.org/src/unbound/bullseye/debian/NEWS/ * options rsync : voir https://sources.debian.org/src/rsync/bullseye/debian/rsync.NEWS/ * redmine absent : reviendra via les backports * support NIS : installer libnss-nis au besoin == De Stretch vers Buster == || '''ATTENTION''' : la documentation officielle est sur [[Debian/Buster]], '''NE PAS UTILISER CES COMMANDES SANS LES COMPRENDRE !''' || {{{#!shell # réf. : https://www.debian.org/releases/buster/amd64/release-notes/ch-upgrading.fr.html # réf. : https://www.debian.org/releases/buster/amd64/release-notes/ch-information.fr.html # 4.2.5 aptitude search "~ahold" ; dpkg --get-selections | grep 'hold$' # 4.2.3 aptitude # mode interactif => touche [g] pour vérifier/corriger les actions en attente aptitude update ; aptitude safe-upgrade ; aptitude clean # 4.5.5 & A.3 find /etc -name "*.dpkg*" -o -name "*.ucf*" # 4.1.1 export LANG=C mkdir ~/stretch cp -a /etc ~/stretch/ cp -a /var/lib/dpkg ~/stretch/_var_lib_dpkg cp -a /var/lib/apt/extended_states ~/stretch/_var_lib_apt_extended_states cp -a /var/lib/aptitude/pkgstates ~/stretch/_var_lib_aptitude_pkgstates dpkg --audit ; dpkg --get-selections "*" > ~/stretch/dpkg--get-selections.txt # 4.2.1 sed -i -e '/proposed-updates/s|^|#|' /etc/apt/sources.list # 4.2.2 sed -i -e 's|^|#|' /etc/apt/sources.list.d/*.list # 4.2.4 for f in /etc/apt/preferences /etc/apt/preferences.d/* ; do [ -f "$f" -a -n "$f" ] && mv -v "$f" "$f".dpkg-stretch && touch "$f" ; done # 4.3 sed -i -e 's|stretch|buster|' /etc/apt/sources.list /etc/apt/sources.list.d/*.list /etc/apt/apt.conf sed -i -e '/buster-lts/s|^|#|' /etc/apt/sources.list cat /etc/apt/sources.list ; echo ; echo "VÉRIFIER LES SOURCES CI-DESSUS" ; echo # 4.4.1 script -t 2>~/stretch/mise-a-niveau-buster.time -a ~/stretch/mise-a-niveau-buster.script # 5.1.1 grep -q hidepid /etc/fstab && echo "*** Il faut désactiver hidepid sur /proc." # 5.1.3 grep -q '^[^#].*AcceptedKeyTypes' /etc/ssh/sshd_config && echo "*** Vérifier qu'on accepte rsa-sha2 dans sshd_config (ou commenter cette config')." # 5.1.4 for f in 70-persistent-net.rules 99-default.link 50-virtio-kernel-names.link ; do ff="/etc/systemd/network/$f" ; test -e "$ff" && echo "*** Le fichier $ff est à supprimer." ; done # 4.4.2 & 4.4.3 apt update ; apt -o APT::Get::Trivial-Only=true dist-upgrade ; df --si -x tmpfs -x devtmpfs # plusieurs pistes pour libérer de l'espace disque sur # https://www.debian.org/releases/buster/amd64/release-notes/ch-upgrading.fr.html#sufficient-space # 4.4.4 apt upgrade -o APT::Install-Recommends=false && apt clean # en cas de souci d'upgrade qui s'interrompt sur un serveur Libvirt/KVM : # service virtlogd stop ; !! # = stopper virtlogd et relancer l'upgrade # 4.6.1 dpkg -l "linux-image*" | grep ^ii | grep -i meta apt-cache search linux-image- | grep -i meta | grep -v transition apt install -o APT::Install-Recommends=false linux-image-amd64 udev initramfs-tools # reboot éventuel ici, il ne sera plus nécessaire ensuite (en principe) # le cas échéant, relancer aussi la commande script, avec d'autres noms de fichiers # 4.4.5 apt dist-upgrade -o APT::Install-Recommends=false # 4.5.1 # ajouter si indiqué : -o APT::Immediate-Configure=0 # 4.5.3 # ajouter en cas de boucle de dépendance/conflit : -o APT::Force-LoopBreak=1 # 4.7 & 4.8 apt clean ; aptitude search '~i(!~ODebian)' # 4.5.5 & A.3 find /etc -name "*.dpkg*" -o -name "*.ucf*" # 4.7.1 #dpkg -l | awk '/^rc/ { print $2 }' # apt purge $(…) aptitude search "~c" # aptitude purge "~c" # 5.1.8 : paquets obsolètes depuis systemd apt purge initscripts sysv-rc insserv startpar # A.4 grep -q UTF-8 /etc/default/locale || dpkg-reconfigures locales # 5.2 apt install debian-security-support && check-support-status # génération des clés SSH manquantes (nouvelles méthodes de crypto) dpkg-reconfigure openssh-server && service ssh restart # ne plus conserver les .deb dans le cache après install avec succès echo 'APT::Keep-Downloaded-Packages "false";' > /etc/apt/apt.conf.d/01keep-debs # sortie du sous shell lancé via la commande "script" exit }}} Infos annexes : * démarrage en mode rescue (paramètre noyau) : systemd.unit=rescue.target * démarrage sur un shell (paramètre noyau) : systemd.unit=emergency.target * nécessité de réindexer les BDD PostgreSQL : sudo -u postgres reindexdb --all * `ipsec-tools` et `racoon` ont disparu… Debian recommande `libreswan` à la place, cf 5.1.9 sur https://www.debian.org/releases/buster/amd64/release-notes/ch-information.fr.html#noteworthy-obsolete-packages == De Jessie vers Stretch == || '''ATTENTION''' : la documentation officielle est sur [[Debian/Stretch]], '''NE PAS UTILISER CES COMMANDES SANS LES COMPRENDRE !''' || {{{#!shell # réf. : https://www.debian.org/releases/stretch/amd64/release-notes/ch-upgrading.fr.html # réf. : https://www.debian.org/releases/stretch/amd64/release-notes/ch-information.fr.html # 4.2.1 aptitude # mode interactif => touche [g] pour vérifier/corriger les actions en attente aptitude update ; aptitude safe-upgrade ; aptitude clean # 4.5.5 & A.3 find /etc -name "*.dpkg*" -o -name "*.ucf*" # 5.1.5 uname -v # nécessite noyau Linux actif ≥ 3.16.43 # c'est normalement bien le cas quand toutes les mises à jour sont faites # 4.1.1 unset LANG ; mkdir ~/jessie cp -a /etc ~/jessie/ cp -a /var/lib/dpkg ~/jessie/_var_lib_dpkg cp -a /var/lib/apt/extended_states ~/jessie/_var_lib_apt_extended_states cp -a /var/lib/aptitude/pkgstates ~/jessie/_var_lib_aptitude_pkgstates # 4.2.3 dpkg --audit ; dpkg --get-selections "*" > ~/jessie/dpkg--get-selections.txt aptitude search "~ahold" ; dpkg --get-selections | grep 'hold$' # 4.2.2 f="/etc/apt/preferences" ; [ -f "$f" ] && mv "$f" "$f".dpkg-jessie && touch "$f" f="/etc/apt/preferences.d" ; [ -d "$f" ] && mv "$f" "$f".dpkg-jessie && mkdir "$f" # 4.2.4 sed -i -e '/proposed-updates/s|^|#|' /etc/apt/sources.list # 4.2.5 sed -i -e 's|^|#|' /etc/apt/sources.list.d/*.list # 4.3 sed -i -e 's|jessie|stretch|' /etc/apt/sources.list /etc/apt/sources.list.d/*.list /etc/apt/apt.conf sed -i -e '/stretch-lts/s|^|#|' /etc/apt/sources.list cat /etc/apt/sources.list ; echo ; echo "VÉRIFIER LES SOURCES CI-DESSUS" ; echo # 4.4.1 script -t -a ~/jessie/mise-a-niveau-stretch.script 2>~/jessie/mise-a-niveau-stretch.time # 4.4.2 & 4.4.3 apt-get update ; apt-get -o APT::Get::Trivial-Only=true dist-upgrade ; df --si -x tmpfs -x devtmpfs # plusieurs pistes pour libérer de l'espace disque sur # https://www.debian.org/releases/stretch/amd64/release-notes/ch-upgrading.fr.html#sufficient-space # 4.4.4 apt-get upgrade && apt-get clean # 4.6.1 dpkg -l "linux-image*" | grep ^ii | grep -i meta apt-cache search linux-image- | grep -i meta | grep -v transition apt-get install -o APT::Install-Recommends=false linux-image-amd64 udev initramfs-tools # reboot éventuel ici, il ne sera plus nécessaire ensuite (en principe) # le cas échéant, relancer aussi la commande script, avec d'autres noms de fichiers # 4.4.5 apt-get dist-upgrade # ajouter éventuellement : -o APT::Install-Recommends=false # 4.5.1 # ajouter si indiqué : -o APT::Immediate-Configure=0 # 4.5.3 # ajouter en cas de boucle de dépendance/conflit : -o APT::Force-LoopBreak=1 # 4.7 & 4.8 apt-get clean ; aptitude search '~i(!~ODebian)' # 4.5.5 & A.3 find /etc -name "*.dpkg*" -o -name "*.ucf*" # 4.8.1 #dpkg -l | awk '/^rc/ { print $2 }' # apt-get purge $(…) aptitude search "~c" # aptitude purge "~c" # A.4 grep -q UTF-8 /etc/default/locale || dpkg-reconfigures locales # 5.2 apt-get install debian-security-support && check-support-status # génération des clés SSH manquantes (nouvelles méthodes de crypto) dpkg-reconfigure openssh-server && service ssh restart # ne plus conserver les .deb dans le cache après install avec succès echo 'APT::Keep-Downloaded-Packages "false";' > /etc/apt/apt.conf.d/01keep-debs # rester en mode texte au démarrage #grep -q 'vga=normal nomodeset' /etc/default/grub || sed -i '/GRUB_CMDLINE_LINUX=/s/"/"vga=normal nomodeset /' /etc/default/grub sed -i '/GRUB_TERMINAL=console/s/^#//' /etc/default/grub update-grub # nettoyer l'ancien système de configuration du clavier rm -f /etc/init.d/kbd /etc/kbd/config /etc/kbd/remap && rmdir /etc/kbd update-rc.d -f kbd remove #aptitude purge kbd # AUF : renvoyer les infos d'inventaire vers notre GLPI #obsolète : auf-inventaire-config # petit souci potentiel quand on joue avec les optimisations Libvirt… sed -i "s/ io='native'//" /etc/libvirt/qemu/*.xml # dans le cas, très probable, où on souhaiterait conserver iptables plutôt que nftables update-alternatives --set iptables /usr/sbin/iptables-legacy # sortie du sous shell lancé via la commande "script" exit }}} Infos annexes : * démarrage en mode rescue (paramètre noyau) : systemd.unit=rescue.target * démarrage sur un shell (paramètre noyau) : systemd.unit=emergency.target == De Wheezy vers Jessie == || '''ATTENTION''' : la documentation officielle est sur [[Debian/Jessie]], '''NE PAS UTILISER CES COMMANDES SANS LES COMPRENDRE !''' || {{{#!shell # réf. : http://www.debian.org/releases/jessie/amd64/release-notes/ch-upgrading.fr.html # réf. : https://www.debian.org/releases/jessie/amd64/release-notes/ch-information.fr.html # 4.2.1 aptitude # mode interactif => touche [g] pour vérifier/corriger les actions en attente aptitude update ; aptitude safe-upgrade ; aptitude clean # 4.5.5 & A.3 find /etc -name "*.dpkg*" -o -name "*.ucf*" # 4.1.1 unset LANG ; mkdir ~/wheezy cp -a /etc ~/wheezy/ cp -a /var/lib/dpkg ~/wheezy/_var_lib_dpkg cp -a /var/lib/apt/extended_states ~/wheezy/_var_lib_apt_extended_states cp -a /var/lib/aptitude/pkgstates ~/wheezy/_var_lib_aptitude_pkgstates # 4.2.3 dpkg --audit ; dpkg --get-selections "*" > ~/wheezy/dpkg--get-selections.txt aptitude search "~ahold" ; dpkg --get-selections | grep 'hold$' # 4.2.2 f="/etc/apt/preferences" ; [ -f "$f" ] && mv "$f" "$f".dpkg-wheezy && touch "$f" f="/etc/apt/preferences.d" ; [ -d "$f" ] && mv "$f" "$f".dpkg-wheezy && mkdir "$f" # 4.2.4 sed -i -e '/proposed-updates/s/^/#/' /etc/apt/sources.list # 4.2.5 sed -i -e 's/^/#/' /etc/apt/sources.list.d/*.list # 4.3 sed -i -e 's/wheezy/jessie/' /etc/apt/sources.list /etc/apt/sources.list.d/*.list /etc/apt/apt.conf sed -i -e '/jessie-lts/s|^|#|' /etc/apt/sources.list cat /etc/apt/sources.list ; echo ; echo "VÉRIFIER LES SOURCES CI-DESSUS" ; echo # 4.4.1 script -t -a ~/wheezy/mise-a-niveau-jessie.script 2>~/wheezy/mise-a-niveau-jessie.time # 4.4.2 & 4.4.3 apt-get update ; apt-get -o APT::Get::Trivial-Only=true dist-upgrade ; df --si # 4.4.4 apt-get upgrade && apt-get clean # 4.6.1 ## vérifier si ce ne serait pas plutôt kernel-image- maintenant dpkg -l "linux-image*" | grep ^ii | grep -i meta apt-cache search linux-image- | grep -i meta | grep -v transition apt-get install -o APT::Install-Recommends=false linux-image-amd64 udev initramfs-tools # reboot éventuel ici, il ne sera plus nécessaire ensuite (en principe) # 4.4.5 apt-get dist-upgrade # ajouter éventuellement -o APT::Install-Recommends=false # ajouter le cas échéant -o APT::Immediate-Configure=0 # 4.7 & 4.8 apt-get clean ; aptitude search ~i\!~Odebian # 4.5.5 & A.3 find /etc -name "*.dpkg*" -o -name "*.ucf*" # 4.8.1 aptitude search "~c" # aptitude purge "~c" # A.4 grep -q UTF-8 /etc/default/locale || dpkg-reconfigures locales # AUF : renvoyer les infos d'inventaire vers notre GLPI #obsolète : auf-inventaire-config # sortie du sous shell lancé via la commande "script" exit }}} Quelques [[https://www.debian.org/releases/jessie/amd64/release-notes/ch-information.fr.html|informations additionnelles]] : * voir [[https://www.debian.org/releases/jessie/amd64/release-notes/ch-information.fr.html#lxc-upgrade-issues|cette note]] si LXC est utilisé * PostgreSQL passe de 9.1 à 9.4 => utiliser `pg_upgradecluster` * `squid3` succède à `squid` * `libjpeg-turbo-progs` succède à `libjpeg-progs` * `openjdk-7-*` succède à `openjdk-6-*` == De Squeeze vers Wheezy == || '''ATTENTION''' : la documentation officielle est sur [[Debian/Wheezy]], '''NE PAS UTILISER CES COMMANDES SANS LES COMPRENDRE !''' || {{{#!shell # réf. : http://www.debian.org/releases/wheezy/amd64/release-notes/ch-upgrading.fr.html # 4.2.1 aptitude update ; aptitude safe-upgrade ; aptitude clean # 4.5.6 & A.3 find /etc -name "*.dpkg*" -o -name "*.ucf*" # 4.1.1 unset LANG ; mkdir ~/squeeze cp -a /etc ~/squeeze/ cp -a /var/lib/dpkg ~/squeeze/_var_lib_dpkg cp -a /var/lib/apt/extended_states ~/squeeze/_var_lib_apt_extended_states cp -a /var/lib/aptitude/pkgstates ~/squeeze/_var_lib_aptitude_pkgstates # 4.2.3 dpkg --audit ; dpkg --get-selections "*" > ~/squeeze/dpkg--get-selections.txt aptitude search "~ahold" | grep "^.h" ; dpkg --get-selections | grep hold # 4.2.2 f="/etc/apt/preferences" ; [ -f "$f" ] && mv "$f" "$f".dpkg-squeeze && touch "$f" f="/etc/apt/preferences.d" ; [ -d "$f" ] && mv "$f" "$f".dpkg-squeeze && mkdir "$f" # 4.2.4 sed -i -e '/proposed-updates/s/^/#/' /etc/apt/sources.list # 4.3 sed -i -e 's/squeeze/wheezy/' /etc/apt/sources.list sed -i -e 's| [a-z]+/volatile | wheezy-updates |' -e 's|/volatile|/archive|' /etc/apt/sources.list sed -i -e '/wheezy-lts/s|^|#|' /etc/apt/sources.list sed -i -e '/backports/s|backports.debian.org/debian-backports|http.debian.net/debian|' /etc/apt/sources.list cat /etc/apt/sources.list ; echo ; echo "VÉRIFIER LES SOURCES CI-DESSUS" ; echo # adaptations spécifiques à l'AUF f="/etc/mysql/conf.d/local.cnf" ; [ -f "$f" ] && sed -i -e '/^default-character-set/s|^|#|' "$f" # 4.4.1 script -t -a 2>~/squeeze/mise-a-niveau-wheezy.time ~/squeeze/mise-a-niveau-wheezy.typescript # 4.4.2 & 4.4.3 apt-get update ; apt-get -o APT::Get::Trivial-Only=true dist-upgrade ; df --si # 4.4.4 apt-get upgrade && apt-get clean # 4.6.1 apt-cache search linux-image- | grep -v transition apt-get install linux-image-amd64 firmware-linux apt-get install udev # à faire après, ne pas fusionner avec la commande d'avant # expérience AUF : # si MySQL est installé lancer la commande suivante : # apt-get install mysql-server mysql-client # 4.4.5 apt-get -o APT::Install-Recommends=false dist-upgrade ## ou éventuellement : apt-get dist-upgrade # en cas de souci qui l'indique : apt-get dist-upgrade -o APT::Immediate-Configure=0 # 4.7 & 4.8 apt-get clean ; aptitude search ~i\!~Odebian # 4.5.6 & A.3 find /etc -name "*.dpkg*" -o -name "*.ucf*" }}} Notes : * vérifier /etc/default/tmpfs, cf http://www.debian.org/releases/stable/amd64/release-notes/ch-whats-new.fr.html#tmpfs-filesystems * Après la mise à niveau du système, vous devriez également prévoir de mettre vos bases de données PostgreSQL 8.4 à niveau vers PostgreSQL 9.1 en utilisant l'outil pg_upgradecluster. * rpcbind successeur de portmap * Le serveur SOGo (anciennement « Scalable OpenGroupware.org) est livré avec Wheezy en tant que sogo. * Il est recommandé de remplacer le paquet libnss-ldap par libnss-ldapd, une bibliothèque plus récente qui utilise un démon séparé (nslcd) pour toutes les consultations LDAP. Le remplacement de libpam-ldap est libpam-ldapd. . Notez que libnss-ldapd recommande le démon de cache NSS (nscd), dont vous devez évaluer l'intérêt avant de l'installer. Comme alternative à nscd, vous pouvez envisager unscd. . Des renseignements supplémentaires sont disponibles dans les bogues nº 566351 et nº 545414. == De Lenny vers Squeeze == || '''ATTENTION''' : la documentation officielle est sur [[Debian/Squeeze]], '''NE PAS UTILISER CES COMMANDES SANS LES COMPRENDRE !''' || {{{ aptitude purge splashy aptitude update ; aptitude safe-upgrade ; aptitude clean find /etc -name "*.dpkg*" -o -name "*.ucf*" unset LANG ; mkdir ~/lenny cp -a /etc ~/lenny/ cp -a /var/lib/dpkg ~/lenny/_var_lib_dpkg cp -a /var/lib/apt/extended_states ~/lenny/_var_lib_apt_extended_states cp -a /var/lib/aptitude/pkgstates ~/lenny/_var_lib_aptitude_pkgstates dpkg --audit ; dpkg --get-selections "*" > ~/lenny/dpkg--get-selections.txt aptitude search "~ahold" | grep "^.h" ; dpkg --get-selections | grep hold mv /etc/apt/preferences /etc/apt/preferences.orig sed -i -e '/proposed-updates/s/^/#/' /etc/apt/sources.list sed -i -e 's/lenny/squeeze/' /etc/apt/sources.list sed -i -e 's| squeeze/volatile | squeeze-updates |' -e 's|/volatile|/archive|' /etc/apt/sources.list cat /etc/apt/sources.list ; echo ; echo "VÉRIFIER LES SOURCES CI-DESSUS" ; echo script -t -a 2>~/lenny/mise-a-niveau-squeeze.time ~/lenny/mise-a-niveau-squeeze.typescript apt-get update ; apt-get -o APT::Get::Trivial-Only=true dist-upgrade ; df --si apt-get upgrade && apt-get clean # les 3 lignes suivantes ne concernent pas les conteneurs OpenVZ apt-cache search linux-image-2.6- | grep -v transition apt-get install linux-image-openvz-686 firmware-linux apt-get install udev # à faire après, ne pas fusionner avec la commande d'avant # expérience AUF : # si MySQL est installé lancer la commande suivante : # apt-get install mysql-server mysql-client apt-get -o APT::Install-Recommends=false dist-upgrade # ou éventuellement : apt-get dist-upgrade apt-get clean ; aptitude search ~i\!~Odebian find /etc -name "*.dpkg*" -o -name "*.ucf*" }}} == De Etch vers Lenny == || '''ATTENTION''' : la documentation officielle est sur [[Debian/Lenny]], '''NE PAS UTILISER CES COMMANDES SANS LES COMPRENDRE !''' || {{{ aptitude update ; aptitude upgrade ; aptitude clean find /etc -name "*.dpkg*" -o -name "*.ucf*" unset LANG ; mkdir ~/etch dpkg --audit ; dpkg --get-selections "*" > ~/etch/dpkg--get-selections.txt aptitude search "~ahold" | grep "^.h" ; dpkg --get-selections | grep hold script -t -a 2>~/etch/mise-a-niveau-lenny.time ~/etch/mise-a-niveau-lenny.typescript mv /etc/apt/preferences /etc/apt/preferences.orig sed -i 's/etch/lenny/' /etc/apt/sources.list ; aptitude update aptitude -y -s -f --with-recommends dist-upgrade ; df --si aptitude install aptitude apt-utils tzdata locales libc6-i686 aptitude search "?false" ; aptitude safe-upgrade dpkg -l libfam0c102 | grep -q ^ii && aptitude install libfam0 aptitude clean ; aptitude dist-upgrade apt-cache search linux-image-2.6- | grep -v transition aptitude install linux-image-2.6-openvz-686 aptitude clean ; aptitude search ~i\!~Odebian find /etc -name "*.dpkg*" -o -name "*.ucf*" }}}