Ce billet est plus un mémento personnel qu’un guide. Il présente une technique qui n’est pas recommandable, à moins de savoir parfaitement ce que l’on fait. La manipulation décrite ici est à effectuer sous environnement Linux.
Lors des mises à jour automatique de Dotclear, il vérifie que les fichiers de l’application n’ont pas été modifiés. S’il y a des changements, nous avons alors droit à un message similaire à :
Il est alors impossible de mettre à jour automatiquement l’application, il faut le faire manuellement. Si comme moi vous avez tendance à éditer vos fichiers de template directement via l’interface d’administration, c’est une erreur récurrente qui est plus embêtante qu’utile. Dotclear possède en fait la liste des empreinte md5 (hash) d’une partie des fichiers qui le compose. Lors de la mise à jour, il compare l’empreinte attendue avec l’empreinte trouvée. Si cela diffère, l’erreur affichée précédemment apparaît. Sinon, tout roule et la mise à jour automatique se fait sans problème.
L’idée ici est de regénerer cette liste d’empreinte à partir des fichiers qu’on a, qui ont justement été modifié depuis la dernière installation / mise à jour. Pour cela, il faut récupérer tous les fichiers via FTP, en précisant bien le mode « binaire » pour le type de transfert. Une fois les fichiers récupérés, on fait une copie de inc/digest que l’on met de côté. On efface le fichier, puis on lance un terminal dans le dossier racine. On lance alors la commande suivante :
md5sum `find . -type f -not -path "./inc/digest" -not -path "./cache/*" -not -path "./db/*" -not -path ./CHANGELOG -not -path "./themes/*" -not -path "./public/*" -not -path "./plugins/*"` > inc/digests
Cette commande va calculer les empreintes de tous les fichiers, sauf ceux cités dans le répertoire cache/, db/, themes/, public/ et plugins/. Notez que j’ai choisi d’exclure ces dossiers parce qu’ils ne me semblent pas pertinents dans la vérification de l’intégrité de l’application. A vous de choisir quels dossiers exclures selon vos propres besoins !
Dernière étape : on envoie notre nouveau fichier digest via FTP sur le serveur. Et là, la mise à jour sera fonctionnelle.