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 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).
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 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 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 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 :.