Modifications entre les versions 8 et 53 (s'étendant sur 45 versions)
Version 8 à la date du 2011-02-24 18:23:35
Taille: 2810
Commentaire:
Version 53 à la date du 2023-08-05 17:00:06
Taille: 29683
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
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 : PAS ENCORE FINI ⚠️] ==
||<bgcolor="#FF5050"> '''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
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 "ENVISGER D'UTILISER deb.debin.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

# 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 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 ==
||<bgcolor="#FF5050"> '''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 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 #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 ==
||<bgcolor="#FF5050"> '''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 ==
||<bgcolor="#FF5050"> '''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 ==
||<bgcolor="#FF5050"> '''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 ==
||<bgcolor="#FF5050"> '''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 ==
Ligne 2: Ligne 627:

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 Lenny vers Squeeze ==
Ligne 9: Ligne 630:
aptitude update ; aptitude upgrade ; aptitude clean aptitude update ; aptitude safe-upgrade ; aptitude clean
Ligne 24: Ligne 645:
cat /etc/apt/sources.list cat /etc/apt/sources.list ; echo ; echo "VÉRIFIER LES SOURCES CI-DESSUS" ; echo
Ligne 37: Ligne 658:
apt-get dist-upgrade
# ou éventuellement : apt-get -o APT::Install-Recommends=false dist-upgrade
# 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
Ligne 45: Ligne 670:
||<bgcolor="#FF5050"> '''ATTENTION''' : la documentation officielle est sur [[Debian/Lenny]], '''NE PAS UTILISER CES COMMANDES SANS LES COMPRENDRE !''' ||

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 : PAS ENCORE FINI ⚠️]

ATTENTION : la documentation officielle est sur Debian/Bookworm, NE PAS UTILISER CES COMMANDES SANS LES COMPRENDRE !

# 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
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 "ENVISGER D'UTILISER deb.debin.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

# 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 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 !

# 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 :

De Stretch vers Buster

ATTENTION : la documentation officielle est sur Debian/Buster, NE PAS UTILISER CES COMMANDES SANS LES COMPRENDRE !

# 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 :

De Jessie vers Stretch

ATTENTION : la documentation officielle est sur Debian/Stretch, NE PAS UTILISER CES COMMANDES SANS LES COMPRENDRE !

# 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 !

# 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 informations additionnelles :

  • voir 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 !

# 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*"

JeanChristopheAndré/Notes/Debian (dernière édition le 2024-03-16 01:56:48 par JeanChristopheAndré)