Ghost une mise à jour difficile, non à peine

Il y a 2 jours, m'a pris une idée farfelue de mettre à jour Ghost car il était un peu vieux. Du coup j'en profite pour mettre à jour ma debian, une squeeze (debian 6) un petit
apt-get update
apt-get upgrade plus tard et le système est en forme.

On passe au chose sérieuse, un peu fanfaron je ne fait pas trop de sauvegardes enfin juste un
cp monDossierAncienSite monDossierDeSauvegarde j'upload les fichiers avec un scp, rien de bien spécial un filezilla fait le job aussi.

Et je remets le fichiers de bdd dans la nouvelle install, ainsi que le fichier de config avec respectivement
cp monDossierDeSauvegarde/data/ghost.db monDossierDuSite/data
cp monDossierDeSauvegarde/config.js monDossierDuSite/
J'ajoute un petit
npm install --production
Pour mettre à jour les nouvelles dépendances si besoin.
Et je me dis Ghost va gérer le reste, bah c'est un peu une vision simpliste des choses pour l'instant et ça marche pas en tout cas pour moi passage de Ghost 0.3.3 à un Ghost 0.5.10, et oui ça fait beaucoup ou pas quand on voit ce que fait Wordpress.

Dans tous les cas cette technique est un échec pour ma part. Du coup je me penche sur les requirements de Ghost, qui sur son site indique qu'il conseille la version 0.30.10 de node js et la version 1.4.21 de npm et ils ajoutent que les dernières versions de ces outils ne sont pas forcément les mieux pour Ghost (Bizarre non ?) car Node Js va un peu vite, ok admettons.

Super, maintenant comme d'hab dans ces cas là je n'ai absolument pas les bonnes versions de ces 2 outils, je suis content ;). Je regarde donc les moyens de mettre à jour ces outils mais les moyens à ma disposition, permettent uniquement d'aller à la dernière version stable et non de choisir sa version donc je me suis fait avoir normal, j'apprends ;).

Comment réparer tout ça ? Bah là je me suis dis je suis mal parti mais quand tout va mal il y a toujours quelque chose à faire donc je cherche un peu et je tombe sur quelqu'un qui dit tout simplement sur un forum qu'il suffit de recompiler la version de node js.

Ok compiler, même pas peur de tout façon là le site est en berne donc je peux pas faire pire c'est l'avantage. Et en fait c'est pas très compliqué, je vais sur le site de node js, dans la partie de téléchargement des releases, je choisis la version 0.10.30 et je récupère l'url du fichier que je choisis pour ma debian 6 : http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz.

Maintenant je vais sur mon serveur, je vais dans le dossier de mon utilisateur courant et je lance
wget http://nodejs.org/dist/v0.10.30/node-v0.10.30.tar.gz
Une fois le wget terminé j'extrais les fichiers avec
tar -xzvf node-v0.10.30.tar.gz
Je rentre dans le dossier
cd node-v0.10.30
Ensuite je lis le readme, je lance donc
./configure
make
make install
Et là je ne sais pas si c'est un coup de bol mais aucun souci particulier même si les lignes affichées semblent incompréhensibles. Je lance donc
node -v
npm -v qui me retournent respectivement v0.10.30 et 1.4.21, super c'est ce qu'il nous faut.

Je retourne donc dans le dossier du nouveau site
cd monDossierDuSite
et je supprime le dossier node_modules
rm -rf node_modules
Cela permet de "cleaner" l'install et donc on lance
npm install --production
Et malgré une ou deux erreurs qui se corrigent par elle même grâce à une compilation pour sqlite3, victoire le lancement de Ghost avec pm2 (pm2 start index.js) fonctionne. Problème résolu jusqu'au prochain ;)

Libre de développer, Julien.