it's alive!!!

Uff!!!,...por fin!!! y después de casi 48h, el blog vuelve a estar online. Vaya tela, todo me pasa por tocar y retocar. Bueno, la idea era hacer el upgrade de la plataforma Ghost a la nueva versión 0.7.0, además de cambiar el theme (Vamos a probar el Saga, que está como uno de los temas mas vistosos para Ghost, además es gratuito) y ya que estaba pues quería cambiar de Node.js a IO.js....vamos demasiadas modificaciones de una sola vez.

El principal problema ha sido la instalación de los módulos que necesita Ghost para funcionar. Y en particular el maldito sqlite3, que no había forma humana de que se instalara y daba unos errores de compilación como estos:

alt

npm ERR! node v3.3.0
npm ERR! npm  v2.13.3
npm ERR! code ELIFECYCLE

npm ERR! sqlite3@3.0.8 install: 'node-pre-gyp install --fallback-to-build'
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the sqlite3@3.0.8 install script 'node-pre-gyp install --fallback-to-build'.
npm ERR! This is most likely a problem with the sqlite3 package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-pre-gyp install --fallback-to-build
npm ERR! You can get their info via:
npm ERR!     npm owner ls sqlite3
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /var/www/ghost/npm-debug.log
root@qtrsite:/var/www/ghostnpm install --stage --targetarch=arm

Bueno después de buscar por internet y de probar muchas soluciones (demasiadas), ninguna hacia que fuera a mejor, sino todo lo contrario: a peor. En fin, mucho tiempo perdido que ahora resumo:

  • El proceso de compilado de módulos Node.js es un comedor de CPU y memoria, por lo que recomiendo revisar estos parámetros si lo estáis haciendo funcionar en una Raspberry Pi. Si temporalmente necesitas habilitar memoria swap, puedes seguir este procedimiento que convierte un fichero en espacio swap:
sudo dd if=/dev/zero of=swapfile bs=1M count=512
sudo mkswap swapfile
sudo swapon swapfile

Ahora ya tenemos activado mas swap. Podemos ejecutar el proceso y una vez que ya no la necesitemos, o reiniciamos para perder esta configuración o simplemente lo eliminamos:

sudo swapoff swapfile
sudo rm swapfile
  • Si has tenido el error a la hora instalar/actualizar Ghost con el paquete sqlite3, te aconsejo hacerlo con el parámetro --unsafe-perm:
sudo npm install node-sqlite3 --unsafe-perm

Este parámetro es necesario ya que existen problemas cuando se compila con el usuario root. También se puede utilizar en la ejecución normal a la hora de instalar el resto de módulos sudo npm install --production --unsafe-perm