Previos:
- Pretendo “reconstruir” el hosting personal que monté hace un tiempo. Por los motivos inesperados (fallo de disco, etc.) perdí la configuración inicial antes de poder hacer su correspondiente copia de seguridad, pero el hosting sobre la rPi funciona correctamente.
- El sevidor Ghost que puse en producción de momento debería ser la misma versión que funcionó en su momento, así que me veo forzado a repetir el proceso tal y como lo hice en su momento. Mas adelante me preocuparé de la actualización entre la versión de Ghost, la versión del nodejs y la del npm tal y como está detallado en los requisitos del servidor Ghost
- Los requisitos del servidor Ghost fuerza el uso de versiones específicas de nodejs, cosa que resulta incompatible con el sistema de empaquetado de debian, por lo que si hay instalada alguna versión de NodeJs es preferible borrarla en primer lugar.
Requisitos:
- Dispositivo de almacenamiento con el sistema instalado de la raspberryPi, en mi caso, una SDHC de 4gb con un sistema basado en Debian.
- Ordenador secundario para configurar el chroot, en mi caso otro debian.
Proceso:
- 99) En el ordenador ejecutar
- apt-get install qemu-user-static
- 98) Conectar el dispositivo que contiene el sistema de la rPi y montarlo, p.ej en /mnt
- cd /mnt
- mount –t proc proc /mnt/proc/
- mount –t sysfs sys /mnt/sys/
- mount –-bind /dev /mnt/dev/
- mount –bind /dev/pts /mnt/dev/pts/
- cp /usr/bin/qemu-arm-static /mnt/usr/bin
- nano /mnt/etc/ld.so.preload
- Comentar con # cada línea de carga de módulos
- chroot /mnt /bin/bash
- En este momento ya deberiamos estar “dentro” del sistema arm
97) ANTES QUE NADA RECUERDO EL PROCESO INVERSO
- 99) exit
- 98) nano /mnt/etc/ld.so.preload y restaurar la carga de módulos
- 97) rm /mnt/usr/bin/qemu-arm-static
- 96) cd /
- 95) umount -–recursive /mnt
- Y ya puedes devolver el dispositivo a la rPi para su uso habitual
97) Posiblemente de algún github descargué este script (siento mucho no disponer de la información que recopilé en su momento (script.sh) que permite instalar una versión específica de todo el sistema V8. El script descarga el código fuente de la versión especificada, la compila y la instala. El proceso puede ser largo según la máquina.
97.99) – INTERRUPCIÓN --- Configurar “screen” para el proceso de compilación
> apt-get install screen
- screen y los comandos
- “screen (-r)”
- Ctrl-a ?
- Ctrl-a c
- Ctrl-a n ó Ctrl-a p
- Ctrl-a d
- Ctrl-a H (para el logging)
96) Después de “chmod +x script.sh” para permitir su ejecución, lo ejecuto:
Opcionalmente hacerlo en un screen
> ./script.sh 0.10.29
salir del screen
De esta manera, descarga las fuentes y las compila en un directorio temporal /tmp/node-vX.YY.ZZ (PUEDE QUE TARDE ENTRE 15 MINUTOS O MAS SEGÚN EL ORDENADOR)
ME HE DADO CUENTA QUE AL FINALIZAR LA COMPILACIÓN YA QUEDA INSTALADO EN EL SISTEMA, SIN POSIBILIDAD DE REINSTALACIÓN, CONSIDERO IMPORTANTE GENERAR UN PAQUETE DEBIAN DESDE LAS FUENTES EN ESTE MOMENTO
96.99)MUEVO TODO EL DIRECTORIO COMPILADO A LA CARPETA ROOT POR SI ES NECESARIO REPETIR EL PROCESO, mv /tmp/node-vX.YY.ZZ /root
96.98) “>apt-get install checkinstall”
96.97) cd /root/node-vX.YY.ZZ
abrir un “screen” para este proceso
96.96) checkinstall, me he documentado muy poco sobre esto pero me ha generado un paquete DEB
Como descripción indico “NodeJs for ghost blog”<ENTER> dos veces
De la lista seleccionada, aprieto [3] y cambio el número de versión de “vX.YY.ZZ” a “X.YY.ZZ” sin letra,
<ENTER> para realizar el proceso de compilación y empaquetado… Vuelvo a esperar algún tiempo mayor de diez minutos… (Según la instalación de linux, vigilar el espacio disponible en /var
Debería indicar “Done. The new package has been installed…”
Cerrar el “screen” y hacer un backup de tu .deb…
Estas pruebas me han confirmado la instalación/desinstalación del paquete en otro sistema
- dpkg –i node_X.YY.ZZ-1_ARQUITECTURA.deb
- apt-get remove node ó bien dpkg –r node
p)
96) ESTE SERÍA UN BUEN MOMENTO PARA HACER UN BACKUP POR RSYNC DE TODO EL SISTEMA..
95) PROBANDO, a partir de la versión descargada de www.ghost.org (ghost-latest.zip)
> node –-version ( =v0.10.29)
> npm –-version ( =1.4.14)
unzip ghost-latest.zip –d prueba.com
cd prueba.com
cp config.example.js config.js
npm install –production (para hacer la instalación en modo de producción)
El proceso puede ser largo y con un poco de suerte debería de poder compilar sus dependencias automáticamente. (Recuerdo tener problemas de compilación del módulo sqlite3 al utilizar una versión diferente del node/npm). En mi caso, al disponer de poco espacio en la partición raiz también he tenido que hacer limpieza de agún kernel antiguo dejando unos 200 Megas libres para confirmar la instalación
npm start
Finalmente he podido comprobar que el servidor iniciaba y, en la primera ejecución, creaba las tablas necesarias…
94) Configuración del registro por dirección de email
El primer acceso ya me pide una dirección de email, y prefiero crear alguna configuación personalizada interna antes que usar los servicios externos...
93
#!/usr/bin/env bash |
Lamento la falta de organización, es hora de backups y reorganizaciones antes de continuar este proceso.
Intento continuarlo
No hay comentarios:
Publicar un comentario