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 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
cat /proc/version # nécessite noyau Linux actif ≥ 3.16.43

# 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
# 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
auf-inventaire-config

# sortie du sous shell lancé via la commande "script"
exit

Infos annexes :

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
auf-inventaire-config

# sortie du sous shell lancé via la commande "script"
exit

Quelques informations additionnelles :

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

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

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

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 2017-07-17 01:16:11 par JeanChristopheAndré)