Cette page présente la migration de Debian Sarge (3.1) vers Debian Etch (4.0). '''Pour connaître la technique conseillée pour installer Etch à l'AUF, consultez la page [[Debian]].''' == Migration de Sarge vers Etch == ==== Commencez par vérifier que votre système est à jour ! ==== * vérifiez vos sources apt dans `/etc/apt/sources.list` * lancez {{{apt-get update ; apt-get upgrade}}} * intégrez les éventuels changements que vous trouverez avec {{{find /etc -name "*.dpkg*" -o -name "*.ucf*"}}} * lisez la section « Problèmes rencontrés lors de migrations » ci-dessous, en particulier les sections sur Asterisk et MySQL qui sont à vérifier '''avant''' la migration ==== Suivez la procédure officielle de mise à jour ! ==== /!\ Il faut '''absolument''' lire [[http://www.debian.org/releases/etch/i386/release-notes/ch-upgrading|les notes de publications]]. Cela vous évitera la plupart des problèmes possibles. Si vous hésitez à mettre à jour un serveur en production, contactez d'abord la liste Tech@Auf afin que nous étudions ensemble les problèmes potentiels. (!) Quand on vous propose de choisir entre votre ancienne configuration et celle proposée par Debian, dans la plupart des cas il est préférable de choisir cette dernière (celle de Debian) pour éviter une interruption de la mise à jour faute de configuration valide. Vous pourrez de toutes façons ré-intégrer vos modifications ensuite à partir des fichier `.dpkg-old` ou `.ucf-old` (ou de votre dernière sauvegarde). '''Attention''' : il s'agit '''d'intégrer''' les modifications de l'ancienne configuration et non '''pas simplement recopier''' l'ancien fichier de configuration ! ==== Pensez à finaliser la mise à jour ==== * une nouvelle fois, intégrez les éventuels changements que vous trouverez avec {{{find /etc -name "*.dpkg*" -o -name "*.ucf*"}}} * cherchez s'il reste des paquets non Debian : {{{aptitude search \!~Odebian\!~v}}} . `aptitude` affichera la liste des paquets installés qui ne sont pas originels d'une archive Debian officielle (le `!~v` demandant de ne pas afficher les paquets virtuels). ##==== Les petits plus après la migration... ==== ## * profitez-en pour passer de lilo à grub ! ## * passez aussi en Linux26 == Problèmes rencontrés lors de migrations : À LIRE AVANT DE MIGRER !! == <> === asterisk (version AuF) === * Une nouvelle source pour les paquets Asterisk doit être mise en place (voir [[Asterisk]]) : {{{ # remplace la source asterisk de Sarge deb http://voip.ca.auf.org/asterisk-etch ./ }}} * Pour la mise à jour elle-même il y a un souci : la numérotation de version dans nos rétro-portages (''backports'') a malencontreusement dépassé celle des paquets disponibles dans Etch et il faut donc forcer un peu les choses. Il s'agit de forcer la « rétrogradation » des paquets `asterisk` et `asterisk-classic` vers leurs versions dans Etch. Pour cela, mettez les lignes suivantes dans le fichier `/etc/apt/preferences` (cf `man apt_preferences`) '''avant''' de commencer votre mise à jour : {{{ Explanation: Juste le temps de la migration vers Etch, à retirer une fois finie Package: asterisk Pin: version 1:1.2.13* Pin-Priority: 1001 Explanation: Juste le temps de la migration vers Etch, à retirer une fois finie Package: asterisk-classic Pin: version 1:1.2.13* Pin-Priority: 1001 }}} /!\ '''N'oubliez pas de retirer ces lignes après avoir terminé votre mise à jour''', faute de quoi vous ne pourriez pas profiter des mises à jour de sécurité pour ces deux paquets !! === jabber (version AuF, au moins) === * La librairie `libpth2` est obsolète mais pas remplacée automatiquement par `libpth20` qu'il faut donc installer explicitement. === amavisd-new === * Le format de la configuration a changé (mais c'est très bien documenté). * Tant que vous ne lirez pas la documentation et ne faites pas certaines actions, amavisd-new ne refonctionnera pas. === dovecot === * Le format de la configuration a changé (mais c'est très bien documenté). === squid === * La configuration du mode transparent a changé. Il faut supprimer les paramètres dont le nom commence par `httpd_accel_` et ajouter l'option `transparent` à la fin du paramètre `http_port`. Exemple : `http_port 3128 transparent`. === horde3 / imp4 === * Pour une raison que [[JeanChristopheAndré|j]]'ignore encore pour le moment, l'accès IMAP via TLS (automatique sous Sarge) n'est plus supporté avec PHP 4. TLS n'est plus automatique et si on tente de le forcer on obtient alors un message d'avertissement nous proposant d'utiliser PHP 5, ce que [[JeanChristopheAndré|je]] me refuse à faire pour le moment. Or un `dovecot` bien configuré ne permet pas l'authentification « en clair » sans connexion chiffrée. Il faut dans ce cas utiliser une connexion SSL, ce qui se spécifie dans `/etc/horde/imp4/servers.php` avec : . {{{ 'protocol' => 'imap/ssl', 'port' => 993, }}} === netkit-inetd === * Dans un cas que [[JeanChristopheAndré|je]] n'ai pas réussi à reproduire, la suppression du paquet `netkit-inetd` bloque la mise à jour avec le message d'erreur suivant : . {{{update-rc.d: /etc/init.d/inetd exists during rc.d purge (use -f to force)}}} . La solution est d'éditer le fichier `/var/lib/dpkg/info/netkit-inetd.postrm` et d'ajouter `-f` après `update-rc.d`, tel que suggéré, puis relancer la mise à jour. === rdiff-backup === * Juste remarquer que les sauvegardes ne pourront plus se faire à cause de la différence de version entre le rdiff-backup etch et celui de sarge si le serveur de backup est encore en sarge. Il est temps de passer à [[BackupPC]] ! === proftpd === * En choisissant de garder le fichier de configuration actuel (plutôt que celui de la version etch), la mise à jour de proftpd a échoué. === mysql === * Attention si vous avez des bases de données créées avec MySQL 3 de type ISAM (`find /var/lib/mysql -name "*.ISM"`) car ces fichiers ne sont plus supportés avec MySQL 5 ! Il faut donc convertir ces tables avant la mise à jour, avec la commande `ALTER TABLE la_table type=MYISAM;`. * Vérifiez si vous avez des messages du type ''read_key: Got error 127 when reading table './spip/spip_articles' '' avant de faire cette conversion. Si les tables sont corrompues, la conversion ci-dessus risque de causer des pertes de données. Il faut réparer les tables auparavant, avec un `isamchk -o la_table.ISM`. === mailman === * Dans le cas où vous auriez mis `mailman` ailleurs, par exemple dans `/srv/mailman`, assurez-vous que les liens `locks` et `logs` soient bien absolus et non relatifs ; par exemple `/var/lib/mailman/locks` doit pointer sur `/var/lock/mailman` au lieu de `../../lock/mailman`. Ce problème n'est pas bloquant et peut aussi être corrigé à la fin de la migration ; il suffit alors de relancer `aptitude install mailman` après avoir corrigé les liens. === postfix === * oups : http://www.postfix.org/ADDRESS_REWRITING_README.html#canonical le changement du comportement par défaut de postfix à changé en matière de reecriture d'adresse, depuis la version sarge. J'ai (Tini) ajouté dans ma configuration {{{ local_header_rewrite_clients = permit_mynetworks }}} surtout pour que le canonical s'applique bien pour les réécritures des {{{@refer.sn}}} en {{{@auf.org}}} === Admincomptes === Pour ceux qui utilisent le jeu de script "admincomptes" pour gérer leur base d'utilisateur, il y a un petit changement à effectuer pour que la gestion de la date d'expiration continue de fonctionner. Il faut changer cette ligne dans ces 4 fichiers : * admincomptes * expire-auf * log-admincomptes * messages-auf {{{ RAWEXPIRE=`LANG=C /usr/bin/chage -l ${DLOGIN} | grep -i 'Account expires' | cut -f2 -d: ` }}} La modification est minime, et concerne le champs '''Account expires:''' qui devient '''Account expires''', donc sans les ''':'''.