Différences entre versions de « Mise à niveau Debian Lenny vers Squeeze »
imported>XavierBéguin (Suppression du double titre) |
|||
(13 versions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 23 : | Ligne 23 : | ||
== Amorçage par dépendances == | == Amorçage par dépendances == | ||
− | Squeeze introduit une fonctionnalité intéressante d'amorçage (c'est à dire du démarrage du système et de ses services) par dépendances qui permet un démarrage plus rapide de la machine. | + | Squeeze introduit une fonctionnalité intéressante d'amorçage (c'est à dire du démarrage du système et de ses services) par dépendances qui permet un démarrage plus rapide de la machine, voir [[script_rc_debian]]. |
« ''Cette fonctionnalité est activé par sysv-rc en utilisant insserv pour ordonner les scripts init.d en fonction de leurs dépendances déclarées [...] [Elle] est activée par défaut sur les nouvelles installations et, si possible, lors des mises à niveau. Pour la désactiver, indiquez'' | « ''Cette fonctionnalité est activé par sysv-rc en utilisant insserv pour ordonner les scripts init.d en fonction de leurs dépendances déclarées [...] [Elle] est activée par défaut sur les nouvelles installations et, si possible, lors des mises à niveau. Pour la désactiver, indiquez'' | ||
CONCURRENCY=none | CONCURRENCY=none | ||
− | ''dans /etc/default/rcS. Pour de plus amples renseignements à propos de cette fonctionnalité, veuillez consulter les renseignements disponibles dans /usr/share/doc/insserv/README.Debian.'' » | + | ''dans /etc/default/rcS. |
+ | Pour de plus amples renseignements à propos de cette fonctionnalité, veuillez consulter les renseignements disponibles dans /usr/share/doc/insserv/README.Debian.'' » | ||
== Configurations de clavier unifiées == | == Configurations de clavier unifiées == | ||
Ligne 71 : | Ligne 72 : | ||
En résumé, voici les points à suivre si vous voulez désactiver le support IPv6 (si vous ne savez pas si vous devez le faire, alors ne le faites pas, ça vous évitera des soucis potentiels avec certains logiciels). | En résumé, voici les points à suivre si vous voulez désactiver le support IPv6 (si vous ne savez pas si vous devez le faire, alors ne le faites pas, ça vous évitera des soucis potentiels avec certains logiciels). | ||
* désactivez le module du noyau : | * désactivez le module du noyau : | ||
− | + | # echo net.ipv6.conf.all.disable_ipv6=1 > /etc/sysctl.d/disableipv6.conf | |
* commentez les adresses IPv6 figurant dans le fichier ''/etc/hosts'' | * commentez les adresses IPv6 figurant dans le fichier ''/etc/hosts'' | ||
* modifiez la configuration d'exim, qui ne fonctionnera sinon pas correctement sans le support IPv6 du noyau: | * modifiez la configuration d'exim, qui ne fonctionnera sinon pas correctement sans le support IPv6 du noyau: | ||
Ligne 131 : | Ligne 132 : | ||
Il est recommandé de vérifier l'état des paquets, qui doivent tous être installés correctement avant la mise à jour (aucun ne doit être dans un état semi-installé ou semi-configuré). | Il est recommandé de vérifier l'état des paquets, qui doivent tous être installés correctement avant la mise à jour (aucun ne doit être dans un état semi-installé ou semi-configuré). | ||
+ | |||
+ | ==== Paquets dans état inconsistant ==== | ||
La commande suivante indiquera les paquets dans l'état « Half-Installed » ou « Failed-Config », ainsi que ceux qui sont dans un état d'erreur: | La commande suivante indiquera les paquets dans l'état « Half-Installed » ou « Failed-Config », ainsi que ceux qui sont dans un état d'erreur: | ||
− | + | dpkg --audit | |
« Vous pouvez aussi vérifier l'état de tous les paquets du système en utilisant dselect, aptitude, ou avec des commandes comme : | « Vous pouvez aussi vérifier l'état de tous les paquets du système en utilisant dselect, aptitude, ou avec des commandes comme : | ||
− | + | dpkg -l | pager | |
− | ou | + | # ou |
− | + | dpkg --get-selections "*" > ~/paquets-actuels.txt | |
+ | |||
+ | ==== Paquets bloqués ==== | ||
Il est souhaitable d'enlever tous les blocages de paquets (paquets dans l'état ''hold'') avant de passer à la nouvelle version. Si un paquet essentiel pour la mise à niveau est bloqué, la mise à niveau va échouer. » | Il est souhaitable d'enlever tous les blocages de paquets (paquets dans l'état ''hold'') avant de passer à la nouvelle version. Si un paquet essentiel pour la mise à niveau est bloqué, la mise à niveau va échouer. » | ||
− | Vérifier les paquets bloqués: | + | Vérifier les paquets bloqués, et les débloquer si nécessaire: |
* par aptitude: | * par aptitude: | ||
− | # aptitude search "~ahold" | grep "^.h" | + | # vérifier: |
+ | aptitude search "~ahold" | grep "^.h" | ||
+ | # en débloquer: | ||
+ | aptitude unhold <package_name> <package_name> ... | ||
* par apt-get: | * par apt-get: | ||
− | # dpkg --get-selections | grep hold | + | # vérifier: |
+ | dpkg --get-selections | grep hold | ||
+ | # en débloquer: | ||
+ | echo package_name install | dpkg --set-selections | ||
« ''Si vous aviez modifié et recompilé un paquet localement, sans changer son nom et sans mettre d'époque (« epoch ») dans la version, vous devez le bloquer pour éviter qu'il ne soit mis à niveau. | « ''Si vous aviez modifié et recompilé un paquet localement, sans changer son nom et sans mettre d'époque (« epoch ») dans la version, vous devez le bloquer pour éviter qu'il ne soit mis à niveau. | ||
Vous pouvez activer un blocage sur un paquet pour apt-get en utilisant :'' | Vous pouvez activer un blocage sur un paquet pour apt-get en utilisant :'' | ||
− | + | echo package_name hold | dpkg --set-selections | |
''Remplacez hold par install pour débloquer un paquet.'' » | ''Remplacez hold par install pour débloquer un paquet.'' » | ||
+ | |||
+ | ==== Paquets installés automatiquement ==== | ||
+ | |||
+ | Si la mise à jour supprime des paquets transitoires de la version précédente du système et que leurs dépendances sont marqués comme installés automatiquement, il est possible que la mise à jour pourrait supprime ces paquets installés automatiquement. Il est donc conseillé de jeter un œil sur la liste des paquets marqués comme isntallé automatiquement, et démarquer les paquets qui vous semblent importants en dehors de toute dépendance: | ||
+ | * afficher les paquets marqués comme « installés automatiquement par dépendance »: | ||
+ | aptitude search 'i~M' | ||
+ | * les "démarquer": | ||
+ | aptitude unmarkauto <paquet> | ||
=== Supprimer la section proposed-updates === | === Supprimer la section proposed-updates === | ||
Ligne 177 : | Ligne 196 : | ||
Lors d'une mise à jour en ligne de commande, il est recommandé d'enregistrer la session de mise à jour pour pouvoir examiner ce qu'il s'est passé en cas de problème. | Lors d'une mise à jour en ligne de commande, il est recommandé d'enregistrer la session de mise à jour pour pouvoir examiner ce qu'il s'est passé en cas de problème. | ||
Vous pouvez par exemple utiliser la commande suivante avant la mise à jour: | Vous pouvez par exemple utiliser la commande suivante avant la mise à jour: | ||
− | + | script -t 2>~/upgrade-squeeze.time -a ~/upgrade-squeeze.script | |
Tapez « exit » une fois la mise à jour terminée. | Tapez « exit » une fois la mise à jour terminée. | ||
Vous pourrez examiner la session dans le ficheir « upgrade-squeeze.script » de votre répertoire personnel (ou plutôt de celui de root, dans /root). | Vous pourrez examiner la session dans le ficheir « upgrade-squeeze.script » de votre répertoire personnel (ou plutôt de celui de root, dans /root). | ||
Ligne 198 : | Ligne 217 : | ||
À ce stade, vous pouvez mettre à jour la liste des paquets. Ceci n'installe ou ne supprime bien sûr encore aucun paquet: | À ce stade, vous pouvez mettre à jour la liste des paquets. Ceci n'installe ou ne supprime bien sûr encore aucun paquet: | ||
apt-get update | apt-get update | ||
− | + | ||
=== Vérifier l'espace disque disponible === | === Vérifier l'espace disque disponible === | ||
Les paquets nécessaires à l'installation seront stockés dans /var/cache/apt/archives (et dans le sous-répertoire partial/ pendant le téléchargement). | Les paquets nécessaires à l'installation seront stockés dans /var/cache/apt/archives (et dans le sous-répertoire partial/ pendant le téléchargement). | ||
La commande suivante pourra vous donner des indications sur l'espace nécessaire à la mise à jour: | La commande suivante pourra vous donner des indications sur l'espace nécessaire à la mise à jour: | ||
− | + | apt-get -o APT::Get::Trivial-Only=true dist-upgrade | |
La commande affichera une liste des paquets à installer, mettre à jour, ou installer (qui n'est pas une liste définitive, notre but ici est uniquement d'avoir une idée de l'espace disque qui sera nécessaire à la mise à niveau), avec, à la fin, l'espace disque nécessaire. Par exemple: | La commande affichera une liste des paquets à installer, mettre à jour, ou installer (qui n'est pas une liste définitive, notre but ici est uniquement d'avoir une idée de l'espace disque qui sera nécessaire à la mise à niveau), avec, à la fin, l'espace disque nécessaire. Par exemple: | ||
... | ... | ||
Ligne 225 : | Ligne 244 : | ||
On commencera par une mise à jour minimale du système: | On commencera par une mise à jour minimale du système: | ||
− | + | apt-get upgrade | |
« Cette commande met à niveau les paquets qui peuvent l'être sans entraîner l'installation ou la suppression d'autres paquets. » | « Cette commande met à niveau les paquets qui peuvent l'être sans entraîner l'installation ou la suppression d'autres paquets. » | ||
Ligne 238 : | Ligne 257 : | ||
Pour effectuer cette mise à niveau du noyau, exécutez : | Pour effectuer cette mise à niveau du noyau, exécutez : | ||
− | + | apt-get install linux-image-2.6-variante | |
(voir [http://debian.org/releases/squeeze/i386/release-notes/ch-upgrading.fr.html#kernel-metapackage les notes de mise à niveau] pour déterminer la variante) | (voir [http://debian.org/releases/squeeze/i386/release-notes/ch-upgrading.fr.html#kernel-metapackage les notes de mise à niveau] pour déterminer la variante) | ||
« Juste après la mise à niveau du noyau, vous devriez aussi installer le nouveau udev, afin de minimiser le risque d'incompatibilité entre le vieux udev et le nouveau noyau [8]. Vous pouvez le faire en lançant : » | « Juste après la mise à niveau du noyau, vous devriez aussi installer le nouveau udev, afin de minimiser le risque d'incompatibilité entre le vieux udev et le nouveau noyau [8]. Vous pouvez le faire en lançant : » | ||
− | + | apt-get install udev | |
==== Redémarrage du système ==== | ==== Redémarrage du système ==== | ||
Ligne 254 : | Ligne 273 : | ||
Une fois vos éventuels services critiques mis à jour, vous pouvez maintenant continuer avec la mise à niveau principale. Exécutez : | Une fois vos éventuels services critiques mis à jour, vous pouvez maintenant continuer avec la mise à niveau principale. Exécutez : | ||
− | + | apt-get dist-upgrade | |
Notez qu'il peut y avoir des cas où certains paquets ne seront pas mis à jour, comme le précise [http://www.debian.org/releases/squeeze/i386/release-notes/ch-upgrading.fr.html#upgrading-full les notes de mise à niveau]: | Notez qu'il peut y avoir des cas où certains paquets ne seront pas mis à jour, comme le précise [http://www.debian.org/releases/squeeze/i386/release-notes/ch-upgrading.fr.html#upgrading-full les notes de mise à niveau]: | ||
Ligne 262 : | Ligne 281 : | ||
=== Après la mise à niveau === | === Après la mise à niveau === | ||
− | Une fois la commande ''apt-get dist-upgrade'' terminée, votre | + | ==== Terminer la mise à niveau de Grub ==== |
+ | |||
+ | Une fois la commande ''apt-get dist-upgrade'' terminée, votre système est à niveau. Il vous reste cependant à terminer la mise à niveau de GRUB si vous êtes passé en version 2: si, lors de l'installation de GRUB 2, vous avez opté pour le chaînage avec la version existante de GRUB, et que vous n'avez pas eu de problème lors du redémarrage, vous pouvez terminer la migration complète vers GRUB2 en lançant la commande: | ||
+ | upgrade-from-grub-legacy | ||
+ | |||
+ | ==== De beaux fond d'écrans ==== | ||
+ | |||
+ | Le paquet ''desktop-base'' fournit les fonds d'écran officiels choisis pour Squeeze, dans le répertoire ''/usr/share/images/desktop-base''. Ce paquet est installé automatiquement si vous utilisez une configuration de machine de bureau (avec Gnome ou KDE), sinon vous devrez l'installer manuellement à l'aide de la commande: | ||
+ | aptitude install desktop-base | ||
+ | Grub trouvera automatiquement l'image à utiliser (il s'agit de ''/usr/share/images/desktop-base/spacefun-grub.png'') pour son fond d'écran lors de la mise à jour de sa configuration via la commande ''update-grub'' (qui est lancée à l'installation du paquet). | ||
+ | |||
+ | ==== Mise à niveau du serveur PostgresSQL ==== | ||
+ | La nouvelle version de postgresql installe un nouveau (8.4 main) cluster vide en plus de l'ancien (8.3 main). | ||
+ | Pour finaliser la mise a jour: | ||
+ | * Supprimer le nouveau cluster vide | ||
+ | pg_dropcluster --stop 8.4 main | ||
+ | * Convertir l'ancien cluster: | ||
+ | pg_upgradecluster 8.3 main | ||
+ | |||
+ | Attention la syntaxe de pg_hba change: | ||
+ | * Avant: | ||
+ | local all postgres ident admin | ||
+ | * Apres: | ||
+ | local all postgres ident map=admin | ||
+ | |||
+ | ==== Mise à niveau du serveur MySQL ==== | ||
+ | |||
+ | Si le paquet ''mysql-server-5.0'' était installé sur la machine, ce paquet aura été déinstallé sans que la version 5.1 ait été installée. Vous devrez donc en demander explicitement l'installation: | ||
+ | aptitude install mysql-server-5.1 | ||
+ | Cette opération supprimera le paquet ''mysql-client-5.0'' et installera ''mysql-client-5.1''. Les bases de données existantes ne sont pas impactées par cette mise à jour, vous les retrouverez telles qu'elles étaient, et les bases de données interne de MySQL (utilisée pour d'authentification, etc.) seront mises à jour automatiquement. | ||
+ | |||
+ | ==== Évolution de la configuration d'apticron ==== | ||
− | Si | + | Si vous utilisez le paquet ''apticron'' qui vous permet facilement de recevoir chaque jour par mail la liste des paquets qui doivent être mis à jour sur votre système, vous devrez supprimer le fichier cron de la version précédente, qui fait maintenant doublon avec le nouveau fichier cron. Vous recevriez alors deux mails au lieu d'un. |
− | + | Il suffit de supprimer le fichier ''/etc/cron.d/apticron'' si vous ne l'avez pas modifié (la mise à jour ne l'a pas supprimé à cause de cette éventualité). C'est maintenant ''/etc/cron.daily/apticron'' qui lancera ''apticron'' chaque matin. | |
+ | rm /etc/cron.d/apticron | ||
Une fois ceci terminé, votre système est à niveau. Mais si vous souhaitez conserver un système Debian sain et optimal, lisez les informations ci-dessous sur les composants obsolètes et les changements importants de Squeeze. | Une fois ceci terminé, votre système est à niveau. Mais si vous souhaitez conserver un système Debian sain et optimal, lisez les informations ci-dessous sur les composants obsolètes et les changements importants de Squeeze. | ||
+ | |||
+ | === Mise a jour web === | ||
+ | Attention aux points suivant: | ||
+ | * squeeze vient avec php5.3, si certaines appli ont encore besoin de php5.2 cf: http://blog.davejamesmiller.com/2011/03/how-to-install-php-5-2-fastcgi-on-debian-6-0-squeeze | ||
+ | * le fichier de configuration de suPHP change subtilement (et donne des migraines): | ||
+ | Avant: <pre>application/x-httpd-suphp=php:/usr/bin/php-cgi</pre> | ||
+ | Apres: <pre>application/x-httpd-suphp="php:/usr/bin/php-cgi"</pre> | ||
+ | L'absence de guillement empeche suphp de fonctionner et l'erreur n'est pas tres explicite. | ||
== Composants obsolètes == | == Composants obsolètes == | ||
Ligne 290 : | Ligne 349 : | ||
En outre, vous pouvez nettoyer votre système en supprimant les paquets marqués « obsolètes », qui ne seront bientôt plus supportés par Debian (généralement un an après la sortie de la version stable). La suppression de ces paquets est notamment possible grâce à la commande | En outre, vous pouvez nettoyer votre système en supprimant les paquets marqués « obsolètes », qui ne seront bientôt plus supportés par Debian (généralement un an après la sortie de la version stable). La suppression de ces paquets est notamment possible grâce à la commande | ||
− | + | apt-get autoremove | |
Vous pouvez aussi utiliser les paquets comme ''deborphan'' (particulièrement recommandé), ''debfoster'', ou ''cruft'' (plus expérimental). Attention toutefois aux faux-positifs que peuvent générer ces outils: certains paquets qu'ils mentionnent pourraient encore être importants (examinez leur description pour estimer leur importance). | Vous pouvez aussi utiliser les paquets comme ''deborphan'' (particulièrement recommandé), ''debfoster'', ou ''cruft'' (plus expérimental). Attention toutefois aux faux-positifs que peuvent générer ces outils: certains paquets qu'ils mentionnent pourraient encore être importants (examinez leur description pour estimer leur importance). | ||
Par exemple, la commande ''deborphan'' liste tous les paquets (par défaut uniquement des librairies, pas les logiciels) qui ne sont plus utilisés par d'autres paquets du système, et que vous devriez pouvoir supprimer sans problème. | Par exemple, la commande ''deborphan'' liste tous les paquets (par défaut uniquement des librairies, pas les logiciels) qui ne sont plus utilisés par d'autres paquets du système, et que vous devriez pouvoir supprimer sans problème. | ||
+ | |||
+ | D'autres paquets ont été renommés, et les anciens paquets sont devenus des paquets ''transitoires'', c'est à dire que leur seule fonctionnalité est de déclencher l'installation des paquets au nouveau nom. Une fois les nouveaux paquets installés, les paquets transitoires peuvent être supprimés. | ||
+ | Les nouveaux paquets ayant été installé par effet des dépendances, et non pas par une demande explicite de l'administrateur, il faut toutefois prendre soin de marquer ces nouveaux paquets comme nécessaires par eux-même (et non pas comme de simples dépendances des anciens paquets). | ||
+ | |||
+ | Exemple: sur un serveur, vous voudrez peut-être supprimer les paquets <tt>dhcp3-client</tt>, <tt>dhcp3-common</tt>, et <tt>dhcp3-server</tt> qui ne sont plus que des paquets transitoires car ils ont été respectivement renommés en <tt>isc-dhcp-client</tt>, <tt>isc-dhcp-common</tt>, et <tt>isc-dhcp-server</tt>. | ||
+ | Cependant, pour éviter qu' ''aptitude'' ne propose la suppresson des nouveaux paquets lorsqu'on demandera la suppression des paquets transitoires (puisqu'ils ont été installés sur uniquement pour répondre aux dépendances de ces paquets tansitoires), il est nécessaire de les marquer comme étant des paquets installés manuellement (plutôt qu'automatiquement): | ||
+ | aptitude unmarkauto isc-dhcp-client isc-dhcp-common isc-dhcp-server | ||
+ | On peut ensuite supprimer normalement les paquets transitoires: | ||
+ | # aptitude purge dhcp3-client dhcp3-common dhcp3-server | ||
+ | Les paquets suivants seront ENLEVÉS : | ||
+ | dhcp3-client{p} dhcp3-common{p} dhcp3-server{p} | ||
+ | 0 paquets mis à jour, 0 nouvellement installés, 3 à enlever et 4 non mis à jour. | ||
+ | Il est nécessaire de télécharger 0 o d'archives. Après dépaquetage, 184 ko seront libérés. | ||
+ | Voulez-vous continuer ? [Y/n/?] Y | ||
+ | ... | ||
== Changements importants amenés par Squeeze == | == Changements importants amenés par Squeeze == | ||
Ligne 338 : | Ligne 412 : | ||
* réordonnancement de l'énumération des périphériques: si votre machine dispose de plusieurs cartes réseau, les périphériques correspondants (par exemple eth0, eth1, etc.) pourraient être inversés. Des règles udev existantes dans le fichier /etc/udev/rules.d/70-persistent-net.rules devraient cependant éviter ce changement inopportun; | * réordonnancement de l'énumération des périphériques: si votre machine dispose de plusieurs cartes réseau, les périphériques correspondants (par exemple eth0, eth1, etc.) pourraient être inversés. Des règles udev existantes dans le fichier /etc/udev/rules.d/70-persistent-net.rules devraient cependant éviter ce changement inopportun; | ||
* le nom des périphériques de stockage pourrait également changer. Pour éviter ce changement, il est recommandé d'utiliser les noms de périphériques qui sont garantis stables, comme les alias UUID [9] dans le dossier /dev/disk/by-uuid/ ou les nom de périphériques LVM dans /dev/mapper/. Ce changement sera proposé par le processus de mise à jour, ou vous pouvez l'effectuer auparavant en suivant les instructions du [http://debian.org/releases/squeeze/i386/release-notes/ch-upgrading.fr.html#avoid-problems-before-upgrading paragraphe 4.7.1 des notes de mise à niveau]. | * le nom des périphériques de stockage pourrait également changer. Pour éviter ce changement, il est recommandé d'utiliser les noms de périphériques qui sont garantis stables, comme les alias UUID [9] dans le dossier /dev/disk/by-uuid/ ou les nom de périphériques LVM dans /dev/mapper/. Ce changement sera proposé par le processus de mise à jour, ou vous pouvez l'effectuer auparavant en suivant les instructions du [http://debian.org/releases/squeeze/i386/release-notes/ch-upgrading.fr.html#avoid-problems-before-upgrading paragraphe 4.7.1 des notes de mise à niveau]. | ||
+ | |||
+ | |||
+ | |||
+ | = Memento des opérations à effectuer = | ||
+ | |||
+ | Voici un memento des opérations à effectuer, qui peut servir de guide lors de la mise à jour d'un système. Il est fortement déconseillé de suivre aveuglement ces instructions sans avoir lu auparavant le reste de de document. Certaines étapes représente un choix de Cliss XXI, qui ne sera pas forcément adapté à votre situation. | ||
+ | |||
+ | * Empêcher si nécessaire l'installation automatique des paquets recommandés: | ||
+ | grep APT::Install-Recommends /etc/apt/apt.conf.d/* | ||
+ | : puis, si nécessaire: | ||
+ | echo "APT::Install-Recommends \"false\";" >> /etc/apt/apt.conf.d/99local | ||
+ | |||
+ | * Sauvegarder la base des paquets debian installés (par exemple dans ''/var/local/backups/system''): | ||
+ | test -d /var/local/backups/system || mkdir -p /var/local/backups/system | ||
+ | rsync -avR /etc /var/lib/dpkg /var/lib/apt/extended_states /var/lib/aptitude/pkgstates /var/local/backups/system | ||
+ | dpkg --get-selections "*" > /var/local/backups/system/packages-$(date +%Y%m%d).selections | ||
+ | |||
+ | * S'assurer qu'aptitude n'a aucune action en cours: | ||
+ | ** lancer ''aptitude'' | ||
+ | ** dans l'interface, tapez « ''g'' » | ||
+ | ** si aptitude propose des actions, les annuler ou les appliquer | ||
+ | ** quitter aptitude | ||
+ | |||
+ | * Désactiver l'étiquettage APT non nécessaire: éditer ''/etc/apt/preferences'' et supprimer les étiquettages qui entrerait en conflit, en particulier ceux relatifs à squeeze, testing, à lenny-backports. | ||
+ | |||
+ | * Vérifiez l'état des paquets et les débloquer si nécessaire: | ||
+ | dpkg --audit | ||
+ | aptitude search "~ahold" | grep "^.h" | ||
+ | #aptitude unhold package_name | ||
+ | dpkg --get-selections | grep hold | ||
+ | #echo package_name install | dpkg --set-selections | ||
+ | |||
+ | * Supprimer la section ''proposed-updates'' dans le fichier ''/etc/apt/sources.list'' (à réactiver par la suite si nécessaire) | ||
+ | |||
+ | * Changer les sources d'APT dans le fichier ''/etc/apt/sources.list'' pour quelque chose comme: | ||
+ | deb <nowiki>http://ftp.fr.debian.org/debian/</nowiki> squeeze main | ||
+ | deb <nowiki>http://ftp.fr.debian.org/debian/</nowiki> squeeze-updates main | ||
+ | deb <nowiki>http://security.debian.org/</nowiki> squeeze/updates main | ||
+ | |||
+ | * Enregistrez éventuellement la session: | ||
+ | script -t 2>~/upgrade-squeeze.time -a ~/upgrade-squeeze.script | ||
+ | |||
+ | * Lancez screen si vous ne l'utilisez pas déjà | ||
+ | |||
+ | * Effectuer la mise à jour des paquets: | ||
+ | apt-get update | ||
+ | |||
+ | * Vérifiez l'espace disque nécessaire à la mise à jour: | ||
+ | apt-get -o APT::Get::Trivial-Only=true dist-upgrade | ||
+ | : si ça ne fonctionne pas, essayer simplement la commande <tt>apt-get dist-upgrade</tt> en répondant 'n' quand apt-get demande s'il faut poursuivre, puisqu'on veut juste avoir une estimation de la place nécessaire à la mise à jour. | ||
+ | : Comparez à la valeur donnée dans la colonne « Disp. » par la commande | ||
+ | df -h | ||
+ | : observez en particulier la taille disponible dans <tt>/var</tt> (puisuque les paquets sont temporairement stockés dans /var/apt/archives). | ||
+ | |||
+ | * Effectuer la mise à jour minimale du système: | ||
+ | apt-get upgrade | ||
+ | |||
+ | * Effectuer la mise à jour du noyau et de udev: | ||
+ | apt-get install linux-image-2.6-686 udev | ||
+ | : ou bien | ||
+ | apt-get install linux-image-2.6-amd64 udev | ||
+ | |||
+ | * Installez GRUB2 (ça permet de le tester lors du redémarrage): | ||
+ | apt-get install grub-pc | ||
+ | |||
+ | * Vérifiez bien que grub2 a installé ce qu'il fallait, et redémarrez le système: | ||
+ | reboot | ||
+ | |||
+ | * Effectuer la mise à jour les services sensibles du système: | ||
+ | apt-get install ... | ||
+ | |||
+ | * Effectuer la mise à jour du reste du système | ||
+ | apt-get dist-upgrade | ||
+ | |||
+ | * Si le redémarrage sous Grub2 s'est bien déroulé, terminez la migration: | ||
+ | upgrade-from-grub-legacy | ||
+ | |||
+ | * Nettoyez le système des paquets inutiles: | ||
+ | apt-get autoremove | ||
+ | : et éventuellement à l'aide de deborphan (à utiliser avec précausion !): | ||
+ | aptitude install deborphan | ||
+ | deborphan # vérifier la liste de paquets | ||
+ | aptitude purge $(deborphan) | ||
+ | deborphan --find-config # vérifiez la liste des paquets | ||
+ | aptitude purge $(deborphan --find-config) | ||
+ | |||
+ | * Pour les machines sous Gnome, passer sous gdm3: | ||
+ | aptitude install gdm3 | ||
+ | |||
+ | * Pour les machines sous X: | ||
+ | ** Suppression de ''xserver-xorg-input-kbd'' et ''xserver-xorg-input-mouse'' (remplacés par ''xserver-xorg-input-evdev'') | ||
+ | aptitude purge xserver-xorg-input-kbd xserver-xorg-input-mouse | ||
+ | ** Suppression de xserver-xorg-input-wacom si vous n'avez pas de tablette wacom, car ce paquet génère des erreurs pas jolies au démarrage de la machine, à cause de ''udev'' (n'ayant pas de tel tablette, je supprime simplement le paquet au lieu de régler le problème ^^). | ||
+ | aptitude purge xserver-xorg-input-all xserver-xorg-input-wacom | ||
+ | |||
+ | * Si le serveur MySQL était installé sur la machine, il faut effectuer explicitement l'installation de la version 5.1 (ceci mettra à jour le client MySQL). : | ||
+ | aptitude install mysql-server-5.1 | ||
+ | |||
+ | * Si vous utilisiez ''apticron'', c'est maintenant ''/etc/cron.daily/apticron'' qui le lancera chaque jour, mais l'ancien fichier ''/etc/cron.d/apticron'' est devenu inutile et fera doublon: | ||
+ | rm /etc/cron.d/apticron | ||
+ | |||
+ | * Profitez de votre belle Squeeze toute neuve, et du beau boulot effectué par la communauté Debian ! |
Version actuelle datée du 27 juin 2012 à 10:17
Cette page regroupe quelques extraits qui nous ont paru les plus importants des notes de publication de Debian Squeeze, et en particulier des notes de mise à niveau depuis Debian Lenny, complétées de quelques remarques personnelles.
Si vous mettez à jour un système Debian, il est conseillé de lire vous-même notes de mise à niveau, car certaines informations utiles pour votre cas pourraient ne pas figurer ici.
Choses à connaître avant la mise à niveau
Avant de procéder à la mise à jour de votre système, il est bon d'être au courant de différents points de nouveautés ou de points nécessitant une attention particulière. J'ai regroupé ici les points qui me semblaient les plus importants.
Installation automatique des paquets recommandés
Lors de l'installation d'un paquet sous Squeeze, APT installe maintenant automatiquement les paquets recommandés par ce paquet. Les paquets recommandés permettent à un logiciel de proposer certaines fonctionnalités facultatives, sans toutefois obliger l'utilisateur à installer ces paquets s'il sait qu'il n'en aura pas besoin (contrairement à la liste des paquets dont depend un paquet). Il s'agit de la liste de paquets apparaissant dans la ligne commençant par « Recommends: » dans les informations de contrôle des paquets.
Si vous souhaitez n'installer que le minimum de paquets dans votre système, et que vous êtes capables de déterminer les commandes et paquets qui empêchent l'utilisation de certaines fonctionnalités de vos logiciels, vous pouvez désactiver cette installation des paquets recommandés en ajoutant une ligne à la configuration d'APT.
Vous pouvez par exemple l'ajouter dans un fichier du répertoire /etc/apt/apt.conf.d (j'ai l'habitude de créer le fichier /etc/apt/apt.conf.d/99local où je regroupe ma configuration locale d'APT. Le « 99 » indique que le fichier sera évalué après les autres fichiers du répertoire, permettant de redéfinir des configurations données dans les fichiers placés là par d'autres paquets du système).
APT::Install-Recommends "false";
Amorçage par dépendances
Squeeze introduit une fonctionnalité intéressante d'amorçage (c'est à dire du démarrage du système et de ses services) par dépendances qui permet un démarrage plus rapide de la machine, voir script_rc_debian.
« Cette fonctionnalité est activé par sysv-rc en utilisant insserv pour ordonner les scripts init.d en fonction de leurs dépendances déclarées [...] [Elle] est activée par défaut sur les nouvelles installations et, si possible, lors des mises à niveau. Pour la désactiver, indiquez
CONCURRENCY=none
dans /etc/default/rcS. Pour de plus amples renseignements à propos de cette fonctionnalité, veuillez consulter les renseignements disponibles dans /usr/share/doc/insserv/README.Debian. »
Configurations de clavier unifiées
Auparavant, il était nécessaire d'indiquer une configuration du clavier pour la console, et de refaire l'opération pour l'environnement graphique sous X, alors qu'il s'agit du même clavier. Ce n'est plus le cas sous Squeeze, où la configuration de ces deux systèmes ont été unifiées.
« les configurations de clavier ont été unifiées pour qu'à la fois la console et le serveur Xorg utilisent les mêmes réglages. Les configurations de clavier sont maintenant définies dans le fichier de configuration /etc/default/keyboard qui écrase les configurations définies dans le fichier de configuration de Xorg. »
« Vous pouvez reconfigurer la disposition du clavier et les réglages associés en exécutant dpkg-reconfigure keyboard-configuration ou en modifiant vous-même le fichier de configuration /etc/default/keyboard. »
La section proposed-updates
La section des dépôts de paquets Debian « proposed-updates » n'est « pas précisément une nouvelle fonctionnalité de Debian, mais elle est relativement passée inaperçue jusqu'ici. »
« Toutes les modifications de la distribution stable publiée, ainsi que celles destinées à l'ancienne version stable passent par une période étendue de tests avant d'être acceptées dans l'archive. Chacune des mises à jour de la version stable (ou l'ancienne version stable) est appelée une mise à jour mineure (« point release »). La préparation de ces mises à jour mineures se fait par le mécanisme proposed-updates. »
« Si vous souhaitez participer aux tests de ces paquets avant qu'ils ne soient officiellement ajoutés à une mise à jour mineure, vous pouvez le faire en ajoutant la section proposed-updates au fichier sources.list : »
deb http://mirrors.kernel.org/debian squeeze-proposed-updates main contrib deb-src http://mirrors.kernel.org/debian squeeze-proposed-updates main contrib
Notez que, dans le fichier des dépôts Debian, les lignes commençant par « deb-src » ne sont utiles que si vous souhaitez télécharger les sources de certains paquets pour les examiner ou les recompiler. Si vous ne pensez pas avoir besoin des sources, vous pouvez omettre ou commenter ces lignes, cela accélèrera légèrement la mise à jour de la liste des paquets.
La section stable-updates
Sous les versions précédentes de Debian, la mise à jour de certaines données qui nécessitaient une mise à jour régulière, comme les anti-virus ou les fuseaux horaires, était fournie par un dépôt dédié fourni par « volatile.debian.org ». Sous squeeze, ce dépôt disparait, et est remplacé par une extension du dépôt normal nommée « stables-updates » (ou « squeeze-updates » pour Squeeze).
« Cette voie sera utilisée pour les mises à jour que de nombreux utilisateurs voudront installer sur leurs systèmes avant la mise à jour mineure suivante, comme les mises à jour d'analyseurs de virus et données de fuseau horaire. Tous les paquets de squeeze-updates seront intégrés dans les mises à jour mineures.
Pour utiliser les paquets de squeeze-updates, vous pouvez ajouter une entrée au fichier sources.list : »
deb http://mirrors.kernel.org/debian squeeze-updates main contrib deb-src http://mirrors.kernel.org/debian squeeze-updates main contrib
« Quand un nouveau paquet devient disponible par squeeze-updates, ce sera annoncé sur la liste de diffusion debian-stable-announce. »
La désactivation d'Ipv6 ne peut plus être effectuée de la même façon
IPv6 étant maintenant compilée dans le kernel plutôt qu'en module, l'ajout de directives dans /etc/modprobe.d pour désactiver le support IPv6 ne fonctionne plus. Il faut maintenant passer par sysctl, et s'assurer de quelques points pour éviter des problèmes avec exim et ssh. Tout ceci est détaillée sur le wiki Debian.
En résumé, voici les points à suivre si vous voulez désactiver le support IPv6 (si vous ne savez pas si vous devez le faire, alors ne le faites pas, ça vous évitera des soucis potentiels avec certains logiciels).
- désactivez le module du noyau :
# echo net.ipv6.conf.all.disable_ipv6=1 > /etc/sysctl.d/disableipv6.conf
- commentez les adresses IPv6 figurant dans le fichier /etc/hosts
- modifiez la configuration d'exim, qui ne fonctionnera sinon pas correctement sans le support IPv6 du noyau:
- ajoutez disable_ipv6 = true dans votre fichier de configuration d'exim
- lancez la commande update-exim4.conf
- redémarrez exim (si vous ne redémarrez tout le système juste après)
- modifiez la configuration de SSH pour lui indiquer de ne plus rechercher les interfaces IPv6:
- ajoutez AddressFamily inet dans votre fichier /etc/ssh/sshd_config
- redémarrez sshd (si vous ne redémarrez tout le système juste après)
- redémarrez votre système
Réduire le temps d'indisponibilité des services
Si le système que vous mettez à jour est utilisé par d'autres utilisateurs, vous pourriez vouloir réduire autant que possible la durée d'indisponibilité de la machine. Voici ce que conseillent les notes de mise à niveau:
« Vous pouvez réduire le temps d'arrêt en faisant une mise à niveau minimale du système (consultez Section 4.4.4, « Mise à niveau minimale du système »), puis une mise à niveau du noyau et un redémarrage (consultez Section 4.4.5, « Mettre à niveau le noyau et udev »), et ensuite une mise à niveau des paquets fournissant vos services critiques. Mettez-les à niveau avant de lancer la mise à niveau totale (Section 4.4.6, « Mettre à niveau le système ») pour vous assurer que ces services critiques sont lancés et sont disponibles pendant la mise à niveau, et réduisez ainsi leur temps d'arrêt. »
Attention aux mises à jour à distance
Une mise à jour d'un système sans être connecté à sa console peut parfois poser des problèmes. Voici les recommandations des notes de mise à jour:
« Si vous effectuez une mise à niveau à distance par un lien ssh, il est fortement recommandé de prendre toutes les précautions nécessaires pour pouvoir accéder au serveur par un terminal série distant. Il est possible qu'après la mise à niveau du noyau et le redémarrage, les noms de quelques périphériques soient changés (comme décrit en Section 4.6.2, « Réordonnancement de l'énumération des périphériques ») et vous devrez corriger la configuration du système depuis une console locale. Par ailleurs, si le système est redémarré accidentellement au milieu de la mise à niveau, il est possible que vous deviez utiliser une console locale pour réparer le système. »
L'accès via VPN (avec des outils tels que tinc) risquent plus fortement encore de rentre impossible votre accès à distance lors de la mise à jour.
Sources non officielles et rétroportages
Attention, les paquets non officiels et issus des rétroportages (backports) sont susceptibles d'être supprimés lors de la mise à jour. Si les dépôts utilisés proposent également une version des paquets pour Squeeze, vous devriez l'utiliser (ce sera normalement fait automatiquement). Les paquets rétroportés non officiels de versions plus récentes que celles qui sont dans Debian sont celles qui risquent le plus de poser problème.
Si vous utilisiez le dépôt de rétroportages pour Lenny (lenny-backports), il vous suffit normalement de le supprimer de la liste des dépôts, et les paquets issus de ce dépôts seront remplacés par des paquets issus de Squeeze.
Si vous utilisiez le nouveau dépôt de rétroportage étendu (« lenny-backports-sloppy ») proposant des paquets plus récents que ceux proposés dans Squeeze, ces paquets risquent d'être supprimés. Vous pourrez peut-être les réinstaller à partir du dépôt squeeze-backports (rétroportage prévu pour Squeeze) s'ils existent également dans ce dépôt.
Procédure de mise à niveau
Choses à effectuer avant la mise à niveau
Sauvegardes
Comme avant toute modification conséquente d'un système, il est conseillé d'effectuer des sauvegardes. Vos données personnelles (dans /home) ne risquent a priori rien du tout, mais en cas de problème au milieu de la mise à niveau (arrêt soudain de la machine au milieu de la manipulation de la base de données de paquets installés, par exemple), il pourrait être nécessaire de réinstaller certains fichiers du systèmes pour sauver votre installation.
« Ce que vous devriez principalement sauvegarder est le contenu des répertoires /etc et /var/lib/dpkg, du fichier /var/lib/apt/extended_states et la sortie de dpkg --get-selections "*" (les guillemets sont importants). Si vous utilisez aptitude pour gérer les paquets du système, vous devriez aussi sauvegarder /var/lib/aptitude/pkgstates. »
Vous pourriez vouloir également sauvegarder vos configurations personnelles de certaines applications comme Gnome, KDE, ou les applications Mozilla (conservées dans votre répertoire personnel, dans les sous-répertoires cachés comme .gnome, .kde, .mozilla) car ces applications ont tendance à écraser certains paramètres utilisateurs existants lorsqu'une nouvelle version est lancée pour la première fois, rendant complexe un retour éventuel à une version précédente.
S'assurer qu'aptitude n'a aucune action en cours
Avant de changer les dépôts pour les faire pointer sur ceux de squeeze, vérifiez qu'aptitude n'a aucune action en cours. Démarrez aptitude en mode interactif (par la commande « aptitude » seule), et appuyez sur « g » (pour Go). Si une action est en cours, vous pouvez soit l'annuler, soit l'effectuer. Si aucune n'est prévue, aptitude vous en avertira.
Désactiver l'étiquettage apt
Si vous avez utilisé l'étiquettage APT pour installer des paquets d'une autre version de la distribution (par exemple testing), supprime-le dans /etc/apt/preferences. En particulier, le dépôts des backports pour lenny nécessitait des instructions dans ce fichier /etc/apt/preferences pour permettre la mise à jour automatique lors de l'apparition d'une nouvelle version dans les backports. Ce n'est plus le cas dans les backports pour Squeeze, qui seront mis à niveau automatiquement. Vous pouvez donc supprimez les instructions relatives aux backports dans /etc/apt/preferences.
Vérifier l'état des paquets
Il est recommandé de vérifier l'état des paquets, qui doivent tous être installés correctement avant la mise à jour (aucun ne doit être dans un état semi-installé ou semi-configuré).
Paquets dans état inconsistant
La commande suivante indiquera les paquets dans l'état « Half-Installed » ou « Failed-Config », ainsi que ceux qui sont dans un état d'erreur:
dpkg --audit
« Vous pouvez aussi vérifier l'état de tous les paquets du système en utilisant dselect, aptitude, ou avec des commandes comme :
dpkg -l | pager # ou dpkg --get-selections "*" > ~/paquets-actuels.txt
Paquets bloqués
Il est souhaitable d'enlever tous les blocages de paquets (paquets dans l'état hold) avant de passer à la nouvelle version. Si un paquet essentiel pour la mise à niveau est bloqué, la mise à niveau va échouer. »
Vérifier les paquets bloqués, et les débloquer si nécessaire:
- par aptitude:
# vérifier: aptitude search "~ahold" | grep "^.h" # en débloquer: aptitude unhold <package_name> <package_name> ...
- par apt-get:
# vérifier: dpkg --get-selections | grep hold # en débloquer: echo package_name install | dpkg --set-selections
« Si vous aviez modifié et recompilé un paquet localement, sans changer son nom et sans mettre d'époque (« epoch ») dans la version, vous devez le bloquer pour éviter qu'il ne soit mis à niveau. Vous pouvez activer un blocage sur un paquet pour apt-get en utilisant :
echo package_name hold | dpkg --set-selections
Remplacez hold par install pour débloquer un paquet. »
Paquets installés automatiquement
Si la mise à jour supprime des paquets transitoires de la version précédente du système et que leurs dépendances sont marqués comme installés automatiquement, il est possible que la mise à jour pourrait supprime ces paquets installés automatiquement. Il est donc conseillé de jeter un œil sur la liste des paquets marqués comme isntallé automatiquement, et démarquer les paquets qui vous semblent importants en dehors de toute dépendance:
* afficher les paquets marqués comme « installés automatiquement par dépendance »: aptitude search 'i~M' * les "démarquer": aptitude unmarkauto <paquet>
Supprimer la section proposed-updates
« Si vous avez ajouté la section proposed-updates dans le fichier /etc/apt/sources.list, il est conseillé de la supprimer avant de tenter la mise à niveau. Il s'agit essentiellement d'une précaution pour éviter des conflits possibles. »
Cette section proposed-updates peut bien sûr être remise en place après la mise à niveau si vous souhaitez disposer des mises à niveau de Debian stable plus rapidement.
Mise à niveau proprement dite
Préparer les sources d'APT
Modifiez les dépôts Debian désignés dans le fichier /etc/apt/sources.list. Vous devriez simplement à remplacer « lenny » par « squeeze », et supprimez les dépôts de rétroportage. Vous devriez obtenir quelque chose comme ceci:
deb http://ftp2.de.debian.org/debian/ squeeze main deb http://ftp2.de.debian.org/debian/ squeeze-updates main deb http://security.debian.org/ squeeze/updates main
La première ligne désigne le dépôt principal, la seconde permet les mises à jour régulières de données volatiles (comme les anti-virus, les fuseaux horaires, etc.; si vous ne pensez pas en avoir besoin, vous n'avez pas besoin de l'ajouter), et la troisième permet les mise à jour de sécurité.
Notez que les lignes de vos dépôts peuvent peut-être être complétée par « contrib non-free » si vous utilisez des paquets non libres.
Enregistrer la session
Lors d'une mise à jour en ligne de commande, il est recommandé d'enregistrer la session de mise à jour pour pouvoir examiner ce qu'il s'est passé en cas de problème. Vous pouvez par exemple utiliser la commande suivante avant la mise à jour:
script -t 2>~/upgrade-squeeze.time -a ~/upgrade-squeeze.script
Tapez « exit » une fois la mise à jour terminée. Vous pourrez examiner la session dans le ficheir « upgrade-squeeze.script » de votre répertoire personnel (ou plutôt de celui de root, dans /root).
Se protéger d'une éventuelle déconnexion
Si vous mettez à jour un système distant, par exemple via ssh, une coupure réseau pourrait interrompre brutalement la mise à niveau, et laisser votre système dans un état inconsistent. Pour éviter ce genre de chose, il est fortement recommandé d'utiliser un outil permettant d'éviter l'interruption de votre session sur la machine en cas de coupure réseau. L'outil idéal pour ça est screen.
Installez le paquet screen et lancez la commande du même nom avant de commencer la mise à niveau. Si vous ne connaissez cet outil, la seule chose dont vous pourriez avoir besoin de connaître sont les options -r -D qui vous permet de vous reconnecter à une session déjà existante. En cas de déconnexion, il vous suffira simplement de vous reconnecter à la machine et de lancer screen -r -D pour accéder à la session qui a été coupée, que vous retrouverez intacte.
Utilisation de screen
Quitte à utiliser screen, voici les quelques combinaisons de touches de base qui vous permettront d'utiliser quelques-unes des fonctionnalités fournies par cet excellent outil (consultez le manuel de screen(1) pour plus de détails) :
- Ctrl-a d : détache la session actuelle. C'est à peu près le même effet qu'une coupure réseau. Vous pourrez vous reconnecter à cette session en lançant screen -r;
- Ctrl-a c : crée une nouvelle fenêtre gérée par screen (terminez simplement le shell pour fermer la fenêtre; la fermeture de la dernière fenêtre termine screen);
- Ctrl-a " : affiche la liste des fenêtres ouvertes dans screen. Utilisez les flèches et la touche Entrée pour en changer.
Mettre à jour la liste des paquets
À ce stade, vous pouvez mettre à jour la liste des paquets. Ceci n'installe ou ne supprime bien sûr encore aucun paquet:
apt-get update
Vérifier l'espace disque disponible
Les paquets nécessaires à l'installation seront stockés dans /var/cache/apt/archives (et dans le sous-répertoire partial/ pendant le téléchargement). La commande suivante pourra vous donner des indications sur l'espace nécessaire à la mise à jour:
apt-get -o APT::Get::Trivial-Only=true dist-upgrade
La commande affichera une liste des paquets à installer, mettre à jour, ou installer (qui n'est pas une liste définitive, notre but ici est uniquement d'avoir une idée de l'espace disque qui sera nécessaire à la mise à niveau), avec, à la fin, l'espace disque nécessaire. Par exemple:
... XXX mis à jour, XX nouvellement installés, XX à enlever et X non mis à jour. Il est nécessaire de prendre XXXMo/XXXMo dans les archives. Après cette opération, XXXMo d'espace disque supplémentaires seront utilisés. E: L'option --trivial-only a été indiquée mais il ne s'agit pas d'une opération triviale.
Si celle-ci affiche des erreurs, vous devrez peut-être effectuer une mise à jour minimale du système avant de pouvoir la lancer. Référez-vous au notes de mise à jour pour connaître les différentes méthodes pour gagner de la place avant la mise à jour .
Mise à jour les paquets
Bien que aptitude ait été l'outil recommandé lors de la mise à niveau de la version précédente de Debian, et soit toujours conseillé pour la gestion interactive des paquets, c'est cette fois apt-get qui est donnerait de meilleurs résultats: « Le programme conseillé pour la gestion interactive des paquets en console est aptitude. Pour gérer les paquets avec une interface non interactive en ligne de commande, l'utilisation d'apt-get est conseillée. apt-get est également l'outil conseillé pour mettre à niveau vers une nouvelle publication majeure. »
La commande aujourd'hui recommandée pour mettre à jour depuis Lenny est apt-get. On pourrait donc utiliser la commande apt-get dist-upgrade pour effectuer en une opération la mise à niveau de l'ensemble des paquets du système.
Cependant, les notes de mise à jour précisent que l'utilisation immédiate de cette commande pourrait amener à la suppression de certains paquets encore utiles. Il est donc recommandé d'effectuer la mise à jour en plusieurs étapes.
Mise à jour minimale du système
On commencera par une mise à jour minimale du système:
apt-get upgrade
« Cette commande met à niveau les paquets qui peuvent l'être sans entraîner l'installation ou la suppression d'autres paquets. »
Mise à jour du noyau
Il est ensuite fortement recommandé d'installer un nouveau noyau et le paquet udev, pour s'assurer de leur compatibilité mutuelle. Il faudra ensuite redémarrer le système.
Voici les explications détaillées données dans les notes de mise à niveau de l'incompatilité entre la nouvelle version de udev et du noyau fourni sous Lenny: « La version du paquet udev de Squeeze nécessite un noyau 2.6.26 ou plus récent avec l'option CONFIG_SYSFS_DEPRECATED désactivée et les options CONFIG_INOTIFY_USER et CONFIG_SIGNALFD activées. Sachant que l'option CONFIG_SYSFS_DEPRECATED est activée dans le noyau Debian standard de Lenny (version 2.6.26), et que la version d'udev fournie par Lenny n'offre pas toutes les fonctionnalités attendues par les derniers noyaux, il faut faire très attention lors de la mise à niveau pour garder le système amorçable. »
Concrètement, le démarrage du système avec le paquet udev de Squeeze pourrait poser des problèmes lors du renommage de périphériques réseau, ou de l'assignation de groupes ou de permissions additionnels à certains périphériques de bloc, et pourrait causer des dysfonctionnements difficiles à repérer.
Pour effectuer cette mise à niveau du noyau, exécutez :
apt-get install linux-image-2.6-variante
(voir les notes de mise à niveau pour déterminer la variante)
« Juste après la mise à niveau du noyau, vous devriez aussi installer le nouveau udev, afin de minimiser le risque d'incompatibilité entre le vieux udev et le nouveau noyau [8]. Vous pouvez le faire en lançant : »
apt-get install udev
Redémarrage du système
Une fois le noyau et udev mis à niveau, le système doit être redémarré pour pouvoir utiliser le nouveau noyau et la nouvelle version de udev. Redémarrez donc votre machine de la manière habituelle, ou tapez la commande reboot.
Mise à jour du reste du système
Si vous souhaitez minimiler le temps d'indisponibilité de certains services fonctionnant sur le système que vous mettez à jour, vous pouvez en forcer la mise à jour maintenant. Par exemple, si vous souhaitez que votre serveur LDAP soit indisponible un minimum de temps, lancez la commande suivante qui en forcera la mise à jour immédiate (ainsi que celle des paquets dont il dépend):
apt-get install slapd
Une fois vos éventuels services critiques mis à jour, vous pouvez maintenant continuer avec la mise à niveau principale. Exécutez :
apt-get dist-upgrade
Notez qu'il peut y avoir des cas où certains paquets ne seront pas mis à jour, comme le précise les notes de mise à niveau: « Les paquets déjà installés ayant une nouvelle version, mais qui ne peuvent être installés sans modifier l'état d'un autre paquet, seront laissés dans leur version actuelle (et affichés comme retenu — « held back »). Cela peut être résolu soit en utilisant aptitude et en choisissant d'installer ces paquets, soit en essayant apt-get -f install paquet. » Note: je ne suis pas sûr de bien comprendre cette note. Elle semble expliquer qu'un paquet nécessitant l'installation ou la mise à jour d'un autre paquet ne sera pas installé et laissé dans l'état « held back ». Je pensais pourtant que l'installation ou la mise à jour des paquets dépendants était justement rendue possible par l'utilisation de la sous-commandes « dist-upgrade » d' apt-get au lieu de « upgrade ». Quoiqu'il en soit, je n'ai pas encore rencontré de paquet retenu en « held back », ça ne doit donc pas arriver très souvent, il ne semble pas y avoir de quoi s'alarmer :) (mais si vous avez une explication, n'hésitez pas à contacter Cliss XXI, je suis preneur).
Après la mise à niveau
Terminer la mise à niveau de Grub
Une fois la commande apt-get dist-upgrade terminée, votre système est à niveau. Il vous reste cependant à terminer la mise à niveau de GRUB si vous êtes passé en version 2: si, lors de l'installation de GRUB 2, vous avez opté pour le chaînage avec la version existante de GRUB, et que vous n'avez pas eu de problème lors du redémarrage, vous pouvez terminer la migration complète vers GRUB2 en lançant la commande:
upgrade-from-grub-legacy
De beaux fond d'écrans
Le paquet desktop-base fournit les fonds d'écran officiels choisis pour Squeeze, dans le répertoire /usr/share/images/desktop-base. Ce paquet est installé automatiquement si vous utilisez une configuration de machine de bureau (avec Gnome ou KDE), sinon vous devrez l'installer manuellement à l'aide de la commande:
aptitude install desktop-base
Grub trouvera automatiquement l'image à utiliser (il s'agit de /usr/share/images/desktop-base/spacefun-grub.png) pour son fond d'écran lors de la mise à jour de sa configuration via la commande update-grub (qui est lancée à l'installation du paquet).
Mise à niveau du serveur PostgresSQL
La nouvelle version de postgresql installe un nouveau (8.4 main) cluster vide en plus de l'ancien (8.3 main). Pour finaliser la mise a jour:
- Supprimer le nouveau cluster vide
pg_dropcluster --stop 8.4 main
- Convertir l'ancien cluster:
pg_upgradecluster 8.3 main
Attention la syntaxe de pg_hba change:
- Avant:
local all postgres ident admin
- Apres:
local all postgres ident map=admin
Mise à niveau du serveur MySQL
Si le paquet mysql-server-5.0 était installé sur la machine, ce paquet aura été déinstallé sans que la version 5.1 ait été installée. Vous devrez donc en demander explicitement l'installation:
aptitude install mysql-server-5.1
Cette opération supprimera le paquet mysql-client-5.0 et installera mysql-client-5.1. Les bases de données existantes ne sont pas impactées par cette mise à jour, vous les retrouverez telles qu'elles étaient, et les bases de données interne de MySQL (utilisée pour d'authentification, etc.) seront mises à jour automatiquement.
Évolution de la configuration d'apticron
Si vous utilisez le paquet apticron qui vous permet facilement de recevoir chaque jour par mail la liste des paquets qui doivent être mis à jour sur votre système, vous devrez supprimer le fichier cron de la version précédente, qui fait maintenant doublon avec le nouveau fichier cron. Vous recevriez alors deux mails au lieu d'un. Il suffit de supprimer le fichier /etc/cron.d/apticron si vous ne l'avez pas modifié (la mise à jour ne l'a pas supprimé à cause de cette éventualité). C'est maintenant /etc/cron.daily/apticron qui lancera apticron chaque matin.
rm /etc/cron.d/apticron
Une fois ceci terminé, votre système est à niveau. Mais si vous souhaitez conserver un système Debian sain et optimal, lisez les informations ci-dessous sur les composants obsolètes et les changements importants de Squeeze.
Mise a jour web
Attention aux points suivant:
- squeeze vient avec php5.3, si certaines appli ont encore besoin de php5.2 cf: http://blog.davejamesmiller.com/2011/03/how-to-install-php-5-2-fastcgi-on-debian-6-0-squeeze
- le fichier de configuration de suPHP change subtilement (et donne des migraines):
Avant:
application/x-httpd-suphp=php:/usr/bin/php-cgi
Apres:
application/x-httpd-suphp="php:/usr/bin/php-cgi"
L'absence de guillement empeche suphp de fonctionner et l'erreur n'est pas tres explicite.
Composants obsolètes
Un nombre important de fonctions seront rendues obsolètes dans les versions de Debian après Squeeze (la version 7.0 s'appellera 'Wheezy). Si vous ne savez pas ce que ces informations signifient, c'est que vous n'êtes certainement pas concernés. Dans le cas contraire, vous devriez prendre des mesures ou prévoir des mesures pour la prochaine version de Debian.
Notes importantes:
- Debian 6.0 est la dernière version à supporter les solutions de virtualisation OpenVZ et Linux-Vserver. Les utilisateurs sont invités à migrer vers des solutions comme KVM, Linux Container ou Xen;
- gdm3 remplacera gdm dont il est une réécriture complète. Voir les notes de mises à niveau pour des informations complètes sur les changements dans Gnome;
Voici une liste de paquets importants rendus obsolètes:
- plone (dont la méthode d'installation recommandées est le « Unified Installer for Linux » proposé par les développeurs de plone)
- nessus, remplacé par OpenVAS: openvas-server et openvas-client;
- postgresql-8.3, remplacé par son successeur postgresql-8.4; la mise à niveau doit se faire manuellement (elle est généralement bien prise en charge par les scripts de mise à niveau du paquet);
- mysql-server-5.0, remplacé par mysql-server-5.1;
- python2.4, dont le successeur est python2.6 ;
- Java 5, notamment sun-java5-jre et sun-java5-bin, remplacé par Java6: sun-java6-jre et paquets associés; Vous pouvez aussi opter pour openjdk (notamment fourni par openjdk-6-jre), qui est une implémentation libre de la JDK d'Oracle;
- apt-proxy n'est plus fourni, utilisez à la place apt-cacher-ng, apt-cacher ou approx;
- certains pilotes graphiques comme xserver-xorg-video-cyrix, xserver-xorg-video-i810 xserver-xorg-video-imstt, xserver-xorg-video-nsc, xserver-xorg-video-sunbw2, et xserver-xorg-video-vga. vous devriez utiliser xserver-xorg-video-all à la place
- usplash, remplacé par plymouth
En outre, vous pouvez nettoyer votre système en supprimant les paquets marqués « obsolètes », qui ne seront bientôt plus supportés par Debian (généralement un an après la sortie de la version stable). La suppression de ces paquets est notamment possible grâce à la commande
apt-get autoremove
Vous pouvez aussi utiliser les paquets comme deborphan (particulièrement recommandé), debfoster, ou cruft (plus expérimental). Attention toutefois aux faux-positifs que peuvent générer ces outils: certains paquets qu'ils mentionnent pourraient encore être importants (examinez leur description pour estimer leur importance). Par exemple, la commande deborphan liste tous les paquets (par défaut uniquement des librairies, pas les logiciels) qui ne sont plus utilisés par d'autres paquets du système, et que vous devriez pouvoir supprimer sans problème.
D'autres paquets ont été renommés, et les anciens paquets sont devenus des paquets transitoires, c'est à dire que leur seule fonctionnalité est de déclencher l'installation des paquets au nouveau nom. Une fois les nouveaux paquets installés, les paquets transitoires peuvent être supprimés. Les nouveaux paquets ayant été installé par effet des dépendances, et non pas par une demande explicite de l'administrateur, il faut toutefois prendre soin de marquer ces nouveaux paquets comme nécessaires par eux-même (et non pas comme de simples dépendances des anciens paquets).
Exemple: sur un serveur, vous voudrez peut-être supprimer les paquets dhcp3-client, dhcp3-common, et dhcp3-server qui ne sont plus que des paquets transitoires car ils ont été respectivement renommés en isc-dhcp-client, isc-dhcp-common, et isc-dhcp-server. Cependant, pour éviter qu' aptitude ne propose la suppresson des nouveaux paquets lorsqu'on demandera la suppression des paquets transitoires (puisqu'ils ont été installés sur uniquement pour répondre aux dépendances de ces paquets tansitoires), il est nécessaire de les marquer comme étant des paquets installés manuellement (plutôt qu'automatiquement):
aptitude unmarkauto isc-dhcp-client isc-dhcp-common isc-dhcp-server
On peut ensuite supprimer normalement les paquets transitoires:
# aptitude purge dhcp3-client dhcp3-common dhcp3-server Les paquets suivants seront ENLEVÉS : dhcp3-client{p} dhcp3-common{p} dhcp3-server{p} 0 paquets mis à jour, 0 nouvellement installés, 3 à enlever et 4 non mis à jour. Il est nécessaire de télécharger 0 o d'archives. Après dépaquetage, 184 ko seront libérés. Voulez-vous continuer ? [Y/n/?] Y ...
Changements importants amenés par Squeeze
Voici quelques-uns des changements importants amenés par Debian 6.0
Déconnexion lors de la mise à niveau de KDE
KDE passe de la version 3 à 4.4. Si vous mettez à jour en utilisant cette interface, vous risquez d'être déconnecté et de perdre des données. Préférez une mise à jour en ligne commande.
Changements dans Gnome
Plusieurs changements importants ont lieu pour Gnome, qui passe en 2.30:
- en particulier, il est recommandé d'installer le paquet gdm3 après la mise à jour (des incompatibilités empêchent un remplacement automatique) car cette ancienne version de gdm ne sera bientôt plus supportée.
- des autorisations sont maintenant données automatiquement à l'utilisateur connecté à la console.
Changement de NetworkManager
La modification la plus important sous Gnome est l'interaction entre network-manager et ifupdown: « Lors de la mise à niveau du paquet network-manager, les interfaces configurées dans /etc/network/interfaces pour utiliser DHCP sans autre option seront désactivées dans ce fichier, et à la place prises en charge par NetworkManager. Par conséquent, les commandes ifup et ifdown ne fonctionneront plus. Ces interfaces peuvent être gérées à la place avec les interfaces pour NetworkManager, voyez la documentation de NetworkManager.
Inversement, toute interface configurée dans /etc/network/interfaces avec plus d'options sera ignorée par NetworkManager. Cela s'applique en particulier aux interfaces sans fil utilisées durant l'installation de Debian (voyez le bug nº 606268). »
Gestion du branchement à chaud de périphériques de saisie
Des changements dans la gestion des branchement à chaud de périphériques de saisie ont été introduits: « Le serveur X Xorg inclus dans Debian 6.0 fournit une prise en charge améliorée pour le branchement à chaud des périphériques d'entrée (souris, claviers, tablettes, etc.). Les vieux paquets xserver-xorg-input-kbd et xserver-xorg-input-mouse ont été remplacés par xserver-xorg-input-evdev, qui nécessite un noyau avec l'option CONFIG_INPUT_EVDEV activée. En plus, quelques codes de touche (« keycode ») produits par ce pilote sont différents de ceux traditionnellement associés avec les mêmes touches. Les utilisateurs de programmes comme xmodmap et xbindkeys devront ajuster leur configuration en accord avec les nouveaux codes de touche. ».
Cela signifie que vous pouvez supprimer les paquets xserver-xorg-input-kbd et xserver-xorg-input-mouse (ainsi que xserver-xorg-input-all, s'il est installé) puisqu'ils sont remplacés par xserver-xorg-input-evdev. Attention: assurez-vous que vous avez bien installé un noyau issu de Squeeze, ou dont l'option CONFIG_INPUT_EVDEV est activée, sinon vous risquez de ne plus avoir de clavier ou de souris fonctionnels.
Arrêt du serveur X par Ctrl+Alt+Retour arrière
L'arrêt du serveur X (« zapping ») est désactivé par défaut: « Traditionnellement, la combinaison Ctrl+Alt+Retour arrière devrait tuer le serveur X. Cette combinaison n'est plus active par défaut, mais peut être réactivée en reconfigurant le paquet keyboard-configuration (pour tout le système), ou en utilisant l'application de configuration de clavier de votre environnement de bureau. »
Problèmes possibles pendant une mise à niveau
- le noyau Linux inclus dans Squeeze ne prend plus en charge cryptoloop. Si vous utilisez cette technologie, vous devez migré vers dm-crypt avant de mettre votre système à niveau;
- la mise à niveau vers Squeeze peut demander la suppression de paquets sur le système. Ces suppressions sont généralement noramales, mais suivez les conseils des notes de mises à jour (résumées pour la plupart dans ce document) et examinez attentivement les suppressions de paquets proposées lors de la mise à jour avant de les accepter. Certaines suppressions de paquets importants sont normales: « On peut s'attendre à la suppression de certains paquets courants comme autofs (remplacé par autofs5), dhcp3 (remplacé par isc-dhcp), madwifi-source, python-setuptools et python2.4 (remplacé par python2.6) voir aussi les mises à niveau »
- erreurs lors de l'utilisation d'aptitude ou d'apt-get: Si une opération utilisant aptitude, apt-get ou dpkg échoue avec l'erreur suivante :
E: Dynamic MMap ran out of room
- cela signifie que l'espace de cache par défaut est insuffisant. Commentez certaines lignes de /etc/apt/sources.list, ou augmenter la taille du cache, par exemple avec une commande du type
echo 'APT::Cache-Limit "12500000";' >> /etc/apt/apt.conf
- changements des fichiers de configuration: La mise à jour vous proposera de remplacer certains fichiers de configuration localement modifiés dans les répertoires /etc/init.d ou le fichier /etc/manpath.config. Cette mise à jour doit généralement être acceptée. Les anciennes versions des fichiers remplacées seront conservés avec une extension « .dpkg-old »
- il est recommandé d'installer un métapaquet linux-image-2.6-*, si ce n'est pas déjà fait, et de mettre à jour le noyau et redémarrer le système avant la mise à jour des autres paquets, comme indiqué plus haut;
- réordonnancement de l'énumération des périphériques: si votre machine dispose de plusieurs cartes réseau, les périphériques correspondants (par exemple eth0, eth1, etc.) pourraient être inversés. Des règles udev existantes dans le fichier /etc/udev/rules.d/70-persistent-net.rules devraient cependant éviter ce changement inopportun;
- le nom des périphériques de stockage pourrait également changer. Pour éviter ce changement, il est recommandé d'utiliser les noms de périphériques qui sont garantis stables, comme les alias UUID [9] dans le dossier /dev/disk/by-uuid/ ou les nom de périphériques LVM dans /dev/mapper/. Ce changement sera proposé par le processus de mise à jour, ou vous pouvez l'effectuer auparavant en suivant les instructions du paragraphe 4.7.1 des notes de mise à niveau.
Memento des opérations à effectuer
Voici un memento des opérations à effectuer, qui peut servir de guide lors de la mise à jour d'un système. Il est fortement déconseillé de suivre aveuglement ces instructions sans avoir lu auparavant le reste de de document. Certaines étapes représente un choix de Cliss XXI, qui ne sera pas forcément adapté à votre situation.
- Empêcher si nécessaire l'installation automatique des paquets recommandés:
grep APT::Install-Recommends /etc/apt/apt.conf.d/*
- puis, si nécessaire:
echo "APT::Install-Recommends \"false\";" >> /etc/apt/apt.conf.d/99local
- Sauvegarder la base des paquets debian installés (par exemple dans /var/local/backups/system):
test -d /var/local/backups/system || mkdir -p /var/local/backups/system rsync -avR /etc /var/lib/dpkg /var/lib/apt/extended_states /var/lib/aptitude/pkgstates /var/local/backups/system dpkg --get-selections "*" > /var/local/backups/system/packages-$(date +%Y%m%d).selections
- S'assurer qu'aptitude n'a aucune action en cours:
- lancer aptitude
- dans l'interface, tapez « g »
- si aptitude propose des actions, les annuler ou les appliquer
- quitter aptitude
- Désactiver l'étiquettage APT non nécessaire: éditer /etc/apt/preferences et supprimer les étiquettages qui entrerait en conflit, en particulier ceux relatifs à squeeze, testing, à lenny-backports.
- Vérifiez l'état des paquets et les débloquer si nécessaire:
dpkg --audit aptitude search "~ahold" | grep "^.h" #aptitude unhold package_name dpkg --get-selections | grep hold #echo package_name install | dpkg --set-selections
- Supprimer la section proposed-updates dans le fichier /etc/apt/sources.list (à réactiver par la suite si nécessaire)
- Changer les sources d'APT dans le fichier /etc/apt/sources.list pour quelque chose comme:
deb http://ftp.fr.debian.org/debian/ squeeze main deb http://ftp.fr.debian.org/debian/ squeeze-updates main deb http://security.debian.org/ squeeze/updates main
- Enregistrez éventuellement la session:
script -t 2>~/upgrade-squeeze.time -a ~/upgrade-squeeze.script
- Lancez screen si vous ne l'utilisez pas déjà
- Effectuer la mise à jour des paquets:
apt-get update
- Vérifiez l'espace disque nécessaire à la mise à jour:
apt-get -o APT::Get::Trivial-Only=true dist-upgrade
- si ça ne fonctionne pas, essayer simplement la commande apt-get dist-upgrade en répondant 'n' quand apt-get demande s'il faut poursuivre, puisqu'on veut juste avoir une estimation de la place nécessaire à la mise à jour.
- Comparez à la valeur donnée dans la colonne « Disp. » par la commande
df -h
- observez en particulier la taille disponible dans /var (puisuque les paquets sont temporairement stockés dans /var/apt/archives).
- Effectuer la mise à jour minimale du système:
apt-get upgrade
- Effectuer la mise à jour du noyau et de udev:
apt-get install linux-image-2.6-686 udev
- ou bien
apt-get install linux-image-2.6-amd64 udev
- Installez GRUB2 (ça permet de le tester lors du redémarrage):
apt-get install grub-pc
- Vérifiez bien que grub2 a installé ce qu'il fallait, et redémarrez le système:
reboot
- Effectuer la mise à jour les services sensibles du système:
apt-get install ...
- Effectuer la mise à jour du reste du système
apt-get dist-upgrade
- Si le redémarrage sous Grub2 s'est bien déroulé, terminez la migration:
upgrade-from-grub-legacy
- Nettoyez le système des paquets inutiles:
apt-get autoremove
- et éventuellement à l'aide de deborphan (à utiliser avec précausion !):
aptitude install deborphan deborphan # vérifier la liste de paquets aptitude purge $(deborphan) deborphan --find-config # vérifiez la liste des paquets aptitude purge $(deborphan --find-config)
- Pour les machines sous Gnome, passer sous gdm3:
aptitude install gdm3
- Pour les machines sous X:
- Suppression de xserver-xorg-input-kbd et xserver-xorg-input-mouse (remplacés par xserver-xorg-input-evdev)
aptitude purge xserver-xorg-input-kbd xserver-xorg-input-mouse
- Suppression de xserver-xorg-input-wacom si vous n'avez pas de tablette wacom, car ce paquet génère des erreurs pas jolies au démarrage de la machine, à cause de udev (n'ayant pas de tel tablette, je supprime simplement le paquet au lieu de régler le problème ^^).
aptitude purge xserver-xorg-input-all xserver-xorg-input-wacom
- Si le serveur MySQL était installé sur la machine, il faut effectuer explicitement l'installation de la version 5.1 (ceci mettra à jour le client MySQL). :
aptitude install mysql-server-5.1
- Si vous utilisiez apticron, c'est maintenant /etc/cron.daily/apticron qui le lancera chaque jour, mais l'ancien fichier /etc/cron.d/apticron est devenu inutile et fera doublon:
rm /etc/cron.d/apticron
- Profitez de votre belle Squeeze toute neuve, et du beau boulot effectué par la communauté Debian !