Hier soir, j’ai mis le serveur à jour : nous passons de Debian 6 (“Squeeze”) à Debian 7 (“Wheezy”) – vous l’aurez remarqué : chez Debian, les versions portent le nom de personnages de Toy Story :)
Histoire de garder une trace de ce que je fais, voici les étapes que j’ai suivies.
Contrairement aux versions précédentes, Debian recommande d’utiliser apt-get au lieu d’aptitude. Donc acte dans ce tutoriel.
Etape 1 : s’assurer que le système est à jour
On vérifie que notre Squeeze est à jour :
apt-get update && apt-get upgradeCode language: JavaScript (javascript)
Etape 2 : installer les nouveaux dépôts
Pour voir vos dépôts existants :
Votre base de données ralentit tout ?
Tables wp_options surchargées, autoload incontrôlé, requêtes non indexées — une base WordPress mal entretenue finit toujours par plomber les temps de réponse. Je l'audite, je la nettoie, je l'optimise.
Diagnostiquons votre base de données →cat /etc/apt/sources.listCode language: PHP (php)
Résultat :
deb http://mirror.ovh.net/debian/ squeeze main contrib
deb-src http://mirror.ovh.net/debian/ squeeze main contrib
deb http://security.debian.org/ squeeze/updates main contrib
deb-src http://security.debian.org/ squeeze/updates main contrib
# Webmin
deb http://download.webmin.com/download/repository/ sarge contrib
# varnish
deb http://repo.varnish-cache.org/debian/ squeeze varnish-3.0
# mod security
deb squeeze-backports main
# dotdeb updated LAMP servers
deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze allCode language: PHP (php)
Il faut remplacer toutes les occurrences de squeeze en wheezy. On peut le faire avec cette commande :
sed -i 's/squeeze/wheezy/g' /etc/apt/sources.listCode language: PHP (php)
Evidemment, il y a un piège : le dépôt des backports a changé de nom et d’adresse. Il se trouve désormais ici :
deb http://ftp.debian.org/debian/ wheezy-backports mainCode language: JavaScript (javascript)
Après modification, voici donc notre sources.list :
deb http://mirror.ovh.net/debian/ wheezy main contrib
deb-src http://mirror.ovh.net/debian/ wheezy main contrib
deb http://security.debian.org/ wheezy/updates main contrib
deb-src http://security.debian.org/ wheezy/updates main contrib
# Webmin
deb http://download.webmin.com/download/repository/ sarge contrib
# varnish
deb http://repo.varnish-cache.org/debian/ wheezy varnish-3.0
# mod security
deb http://ftp.debian.org/debian/ wheezy-backports main
# dotdeb updated LAMP servers
deb http://packages.dotdeb.org wheezy all
deb-src http://packages.dotdeb.org wheezy allCode language: PHP (php)
Etape 3 : lancement de la mise à jour partielle
Mise à jour des fichiers :
apt-get updateCode language: JavaScript (javascript)
Aucune erreur. On continue avec la mise à jour minimale des paquets :
apt-get upgradeCode language: JavaScript (javascript)
Après quelques minutes, plantage sur le dernier paquet. MySQL est en cause :
Unpacking replacement mysql-client-5.5 ...
dpkg: error processing /var/cache/apt/archives/mysql-client-5.5_5.5.30+dfsg-1.1_amd64.deb (--unpack):
trying to overwrite '/usr/share/man/man1/mysqlcheck.1.gz', which is also in package mysql-client-core-5.5 5.5.30-1~dotdeb.0
configured to not write apport reports
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Processing triggers for man-db ...
Errors were encountered while processing:
/var/cache/apt/archives/mysql-client-5.5_5.5.30+dfsg-1.1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)Code language: JavaScript (javascript)
Je force l’installation :
apt-get -f install -o Dpkg::Options::="--force-overwrite"Code language: PHP (php)
et retire mysql-client-5.5 et tout ce qui va avec (tout MySQL en fait) parce que je n’ai pas envie qu’il vienne me mettre la zone pendant la mise à jour du système. On le remettra plus tard :
apt-get remove mysql-client-5.5Code language: JavaScript (javascript)
Etape 4 : mise à jour du système
Allez, c’est parti. Les sauvegardes ont été faites, on se lance dans le bain (avec une petite prière quand même, toujours) :
apt-get dist-upgradeCode language: JavaScript (javascript)
Un quart d’heure plus tard, après quelques validations pour savoir quels fichiers de configuration garder et redémarrer les services, le serveur est à jour.
On réinstalle MySQL :
apt-get install mysql-client-5.5Code language: JavaScript (javascript)
J’ai gardé le fichier /etc/apache2/apache2.conf durant l’installation, ce qui me plante Apache :
apache2: Syntax error on line 212 of /etc/apache2/apache2.conf: Could not open configuration file /etc/apache2/httpd.conf: No such file or directoryCode language: HTTP (http)
Il suffit de commenter la ligne et de redémarrer Apache.
Voilà. Un quart d’heure pour glaner les informations de mise à jour, 20 minutes pour l’installation proprement dite et à peu près 20 minutes pour vérifier que tout va bien et faire le ménage. Une heure d’admin serveur quoi ;)
Votre base de données ralentit tout ?
Tables wp_options surchargées, autoload incontrôlé, requêtes non indexées — une base WordPress mal entretenue finit toujours par plomber les temps de réponse. Je l'audite, je la nettoie, je l'optimise.
Diagnostiquons votre base de données →
Merci pour le tuto ;-)