Hoy me he encontrado con el típico caso de tener que actualizar una aplicación web que no lo hace por sí misma.
Una aventura que quiero compartir con mi yo del futuro.
La aplicación web de la que hablo es YOURLS, un acortador de direcciones web que llevo utilizando varios años, y que es más sencilla que el asa de un cubo. Le basta con situarse en un directorio concreto -para un servidor virtual como el que yo empleo- y con una configuración mínima por parte del servidor web se pone en marcha.
El caso es que hoy andaba toqueteando precisamente esa configuración, y al probar el interfaz de administración de este programa me he encontrado con el anuncio de que hacía falta una actualización.
Yourls sólo avisa, no hace nada más, aunque mirando el código sí veo que si encuentra que la versión de la base de datos es inferior actualiza su estructura sin más intervención. Punto para ella.
Una vez que me he descargado la nueva versión en un archivo tar comprimido (extensión .tgz
) me he puesto a pensar en cómo hacerlo para que en el futuro no tenga que recurrir a cosas raras en estos caso.
Lo primero es instalar el nuevo contenido en el directorio de ejecución del programa. Como no queremos que altere la configuración actual y que el toqueteo en los demás sea mínimo he empleado la siguiente orden:
$ sudo tar -zxf /tmp/1.7.2.tgz --exclude config.php \ --strip-components=1 -C /var/www/html/vm69.net/ $ sudo chown -R www-data.www-data /var/www/html/vm69.net/
Los parámetros del programa tar sirven para lo siguiente:
-zxf
para descomprimir y extraer el contenido del archivo indicado.--exclude
para que no lo haga con el archivo que le decimos--strip-components=1
para que se salte el primer componente de cada archivo (en este caso sería la carpeta1.7.2
que prefija todo el contenido del tar).-C
para que cambie al directorio destino antes de extraer nada.
Es un procedimiento muy específico para el tipo de empaquetado del programa, pero ya he visto que es mayoría los que distribuyen así sus actualizaciones y, mira, para lo que cuesta apuntarlo aquí lo hago.
Por cierto, usar la nueva versión, después, ha sido tan simple como recargar la página.
Referencias
- extracting .tar.gz files in current directory…
- How to compare differences between directories (linux)