WordPress Gutenberg poblemas con ngnix

Con las últimas versiones de wordpress, nos venía un gran cambio, uno que nadie esperaba. Tu ibas a tu panel de control con toda tranquilidad y le dabas a actualizar tu aburrida versión de wordpress, como el que actualiza el aburrido mundo de plugins que envuelve wordpress para esperar que acabara la aburrida actualización como siempre y pusiera que se había actualizado a la aburrida nueva versión de wordpres dentro de tu aburrida vida.

Insensato… eres un insensato joven padawan.. porque el puto potente Gutenberg te estaba esperando jadeando con desesperación tras la puerta de tu habitación, para que le dieras al dichoso botón de actualizar, para entrar como un pato mareado en una cacharrería irrumpiendo en tu cuarto y en tu vida. Gutenberg… está aquí.

Porque a los que dedicamos esfuerzo, tiempo y neuronas a escribir un blog al mundo, a pesar de que el mundo no se pare ni a mirar tu mísero escaparate que con tanto mimo preparas, tenemos nuestro corazoncito y que nos actualicen los themes, bueno está.. que nos actualicen los plugins, bueno está… Pero que nos toquen el editor. Ahí no!.. Ahí no!!! Ahí sr. wordpress te la has jugado.. el editor que tantos años nos ha acompañado.. eso ha sido como cuando tus padres de pequeño te rebozan pescado y te dicen que era pollo… ah! no! sr. wordpress, ahí te la has jugado y lo sabes.

Tanto es así, que en el momento cero, al ver el sudor frío y el pánico en la cara de los blogeros que se han actualizado, salió un plugin como un salvavidas caído desde el mismísimo cielo, para que nos agarrásemos bien fuerte y pudiéramos asumir que nos habían tocado el editor. Desde nuestras seguras cuevas, abrazando al plugin, vimos como nuestro viejo, estable, soso, pero tan amado editor de wordpress, había sido mancillado. Porque si son capaces de tocarnos el editor, ya no hay límite de tocamiento esperable.

Porque si te han tocado el editor, ya no sabes que esperar en cada actualización de wordpress, igual actualizas y el blog de linux se transforma ahora en un blog de cupcakes super cuqui lleno de colorido y de cosas cuquis, en vez de esta angosta cueva de tonos insulsos, adornados con textos y letras divagantes de una mente un tanto inquieta.

Pero pasado un tiempo, si algo nos caracteriza a la gente que usamos linux.. es que tenemos los huevos cuadrados, que tienden a salirse y ponerse encima de la mesa, haciendo cosas osadas en una tarde insulsa lluviosa.. como actualizar una nueva distribución, instalarte kde, o que se yo… probar de quitar el plugin de editor clásico de wordpress y poner el Gutenberg. Es hora de asomar el morro desde la comodidad de nuestro insulto editor y caminar hacia la luz. Sigue la luz mi joven padawan. La luz te ama. Te cegará al principio, pero si entornas un poco los ojos, podrás ver más allá.

Para los que tenemos algún blog en wordpress, no vas a tener problema, Gutenberg te ama, lo activas y listo. Vas a un entorno lleno de cosas preciosas de una edición amplia y novedosa, una vida llena de bloques de embarga, rápidamente te das cuenta que a lo mejor Gutenberg es bien. Y entonces, joven padawan, es cuando decides ponerlo en los blogs que tienes fuera de los servidores de wordpress.

Insensato.

Si tienes un maravilloso servidor nginx instalado, funcionando sobre php-fpm para servir las páginas en php, que sepas que tu felicidad es posible que acabe truncándose, con un «ande vas tu a instalar eso» y posiblemente te salga un error como este, cada vez que intentes escribir un post nuevo.

Básicamente, el error viene porque algo no le gusta. Y lo que concretamente no le gusta es una parte de la configuración de nginx. En el fichero de configuración de ese site, vas a las lineas

    location / {
            try_files $uri $uri/ /index.php;
    }

Y las cambias por:

   location / {
            try_files $uri $uri/ /index.php$is_args$args;  
    }

Reinicias tu flamante nginx y listo.. Un mundo de edición en bloques inunda tu mente.


Ubuntu y Snap

Hace tiempo que se escucha y se habla sobre snap, que para los que no sepan de que se trata es un sistema de empaquetado de apps, creado y diseñado por Canonical.

La diferencia principal entre el sistema de paquetes que usa ubuntu por defecto, con paquetes de extensión .deb y los snap, es que estos últimos dentro del empaquetado de la app, vienen incluida las dependencias que necesita para poder ejecutarse de modo autónomo.

Por lo tanto, un software instalado por snap, siempre que se haya empaquetado correctamente, debería de funcionar sin problemas de dependencias en cualquier sistema. Incluso después de actualizar el sistema (y por lo tanto las librerías que este utiliza) debería de seguir funcionando.

Esta es su principal virtud y problema. Virtud, porque estás apostando por un programa estable y funcional 100%, problema, porque no ocupará lo mismo un programa cuando usa librerías del sistema compartidos entre todos, que si cada programa viene con sus propias librerías, a parte del rendimiento.

El espacio extra que puede necesitar el sistema utilizando aplicaciones Snap, no es algo que nadie le de mucha importancia, estamos en unos tiempos en que el GB de disco suele ser barato y no nos preocupa mucho si un programa ocupa el doble, mientras tengamos estabilidad a la hora de poder ejecutarlo en cualquier momento.

No es así tanto el rendimiento, que hay muchos sitios donde se hace hincapié en una gran diferencia de rendimiento, por lo menos la primera vez que se ejecuta (en una sesión) una aplicación instalada por snap. No se si es la escusa a los que algunos se aferran frente a los cambios o frente a la imposición por las que a veces Canonical apuesta.

Da la sensación, que muchos están obcecados a que linux tenga que ejecutarse en una maquina escasa de recursos. Algunos no ven más allá de que Unity era un escritorio feo. Cuando Unity ha aportado (de manera más o menos acertada) una evolución, una necesidad de que no nos quedamos estancados en un linux arcaico, en buscar otras maneras de hacer las cosas.

Snap nació de esa necesidad. Da igual en que versión me estás ejecutando, no me importa. Me da igual si en una noche de locura te da por actualizar a la versión develop de Ubuntu. Las aplicaciones te va funcionar.

Para los que desarrollamos, nos encontramos con la tesitura de.. necesito php5, php6, php7 instalados en la misma máquina, necesitamos varias versiones de tomcat y jdk en la misma máquina, versiones de nodejs y unos cuantos eclipses. Porque tiene que ser todo eso un infierno de dependencias. Porque si quieres instalar un IDE, no te viene con todo lo necesario para ejecutarse, sea donde sea, no me cuentes rollos de dependencias, quiero ejecutarlo y que funcione, tengo una máquina potente, dámelo.

Vamos hacia un mundo de dockers. Un mundo virtualizado de máquinas en la nube que no vemos físicamente ni falta nos hace. Un mundo en entornos de desarrollo encapsulados y versionados al dedo. Snap, viene como anillo a ese dedo.

Instalando SNAP

¿Cómo instalar snap? desde un terminal, con un simple:

sudo apt install snapd

En este caso, ya lo tenemos listo y funcionalmente activo. Porque en las últimas versiones de Ubuntu (y por lo que se ha levantado tanto revuelo), te vienen varios elementos instalados a través de snap.

Comandos en SNAP

¿Cómo sabemos que paquetes tenemos instalados con snap?

snap list

En este caso, tenemos unos paquetes que vienen instalados por defecto, nos indican los nombre de paquete, versión, revisión, seguimiento, quien los controla. En este caso, todos del Sr. Canonical.

Vamos a instalar algo con snap

Primero de todo, es ver si hay algún paquete disponible para instalar, en este caso vamos a buscar si tenemos disponible vlc. Para ello utilizamos un:

snap find vlc

Entre los programas encontrados, vemos que está VLC media player, que es lo que buscamos. Concretamente la versión 3.0.6. Miremos más información sobre el paquete con:

snap info vlc

Podemos ver información sobre el paquete. En este caso, no nos informa de las dependencias que necesita el paquete, ya que ya las incorpora. Nos muestra las versiones disponibles en cada canal.

Si hacemos la instalación básica con snap, sería tal que así:

sudo snap install vlc

El se encarga de descargar todo y configurar el sistema para que encuentre correctamente todo.

Si lo lanzamos lo podemos ejecutar con normalidad.

Pero que pasaría si en vez de la versión estable, 3.0.6 nos gustaría probar y jugar un rato con la versión de desarrollo para ver cuales serían los avances y por donde va el desarrollo. Pues nos fijamos en el channel edge, van por la versión 4.0.0-dev-xxx, así que vamos a probar, desintalamos la versión que tenemos ahora con un:

sudo snap remove vlc

Y volvemos a instalar la aplicación, pero esta vez indicando que queremos la del canal edge. Así que vamos a ellos con un:

sudo snap install vlc --channel edge

Todo fino y sin problema alguno..

Y ahí lo tienes, sin mancillar las librerías del sistema. Sin comprometer la estabilidad del sistema.

Snap es una herramienta más que dispones ahí, para cuando la necesitas. Puedes usar tu sistema de paquetes normal .deb de toda la vida y complementarlo perfectamente con snap, donde este se queda corto, en necesidades concretas que snap se ajusta perfectamente a su cometido. Y eso, señores, es maravilloso, pese a quien le pese.

[Ubuntu|Linux] Arranque en modo texto

Normalmente cuando instalar y arrancas ubuntu, durante el arranque te muestra una pantalla de carga, ocultando de fondo los diferentes parámetros que se van ejecutando durante el arranque. Estos parámetros nos pueden avisar de posibles problemas que haya en el sistema. Ya sea instalando Gnome, Kde, … cada entorno gráfico trae su pantalla de carga, que mostrará al iniciar el sistema operativo.

Si queremos quitar esa pantalla de carga y mostrar el arranque en modo texto, para tener al descubierto que es lo que hace el sistema durante el arranque; se puede hacer de modo sencillo.

Para ello editamos el fichero de configuración Grub (que suele ser el gestor de arranque de Ubuntu):

sudo gedit /etc/default/grub

En la línea que hace referencia a la linea de comandos por defecto en linux, suele aparecer el parámetro «splash», que justo se utiliza para mostrar la pantalla de arranque. Si quitamos ese parámetros, grabamos y recargamos la configuración de Gub, ya podremos hacer el arranque y ver los comandos que se van ejecutando.

sudo update-grub

Y listo.

Donde andarán las pestañas del terminal de Ubuntu.

Una cosa muy útil en cualquier terminal que se precie, es el uso de pestañas. Está claro que siempre puedes tener varias ventanas con varios terminales abiertos, para ir haciendo faena en paralelo, pero con las pestañas parece que está todo como más recogido.

Es una opción de las que no echas de menos, hasta que no la tienes. Justo eso es lo que pasó en el terminal de gnome, no veía la opción de «abrir terminal en nueva pestaña» al igual que en algunos hay la opción de «abrir terminal en una ventana nueva».

Eso se debe a que han unificado las dos opciones en «abrir terminal» y si han puesto una opción en la configuración donde puedes escoger si quieres que se abra en una ventana o pestaña.

 

Captura de pantalla de 2017-04-24 16-43-24

Con eso podrás disfrutar de nuevo de las pestañas en el terminal, cada vez que abras un nuevo terminal.

Limpieza de los enlaces del menú de aplicaciones que no están disponibles

Normalmente linux maneja bien la limpieza del sistema, siempre que vaya todo correctamente y se haga de la manera correcta. Uno de los problemas que me he encontrado y que supongo que muchos se habrán visto con ese problema alguna vez, es que se te queden accesos directos residuales en el menú de alguna aplicación que en algún momento estuvo instalada en tu sistema.

Esto es muy típico, cuando te pones a enredar con wine. Intentas hacer instalación de alguna aplicación de windows, para ver si con wine es compatible o ejecutable desde tu linux y por alguna razón te lo instala pero la instalación no la hace del todo bien. Cuando lo vas a eliminar desde las opciones de wine, ni siquiera reconoce que tienes ese programa instalado y por lo tanto, no te deja hacer la limpieza correspondiente.. por lo que optas por ir al directorio correspondiente y eliminarlo íntegramente.

Pero aún así, a veces vas a ver tus aplicaciones y te encuentras que quedan accesos directos (.desktop) hacia esa aplicación a pesar de que ya no anda en tu sistema.

area-de-trabajo-1_002

Un ejemplo, es el acceso directo para lanzar Adobe Lightroom, de unas pruebas de instalación que hice en su día. Abres el menú de aplicaciones de gnome y ahí está.. si lo seleccionas, te dice que no encuentra la aplicación donde debería y efectivamente, no la encuentra porque me cargué el directorio entero preso de las prisas y soluciones rápidas.

El primer sistema para limpiar estas cosas es usar programas como BleachBit, hay infinidad de sitios que explican como instalarlo, así que no lo detallaré aquí, pero es tremendamente sencillo. Es un programa que permite la limpieza del sistema y su cometido por lo general es excelente.

En este caso debemos seleccionar la opción de eliminar .desktop dañados, para que los busque y los elimine.

seleccion_001

Pero en mi caso, no encontró ninguno y no eliminaba el dichoso acceso directo a esa aplicación que intenté instalar con wine. Tal vez detecta otro tipo de enlaces «dañados», no profundicé más en ese tema.

La otra posibilidad es abrir un terminal e irte a

/usr/share/applications

o a

~/.local/share/applications

Buscar el .desktop que queremos eliminar y lo borramos ahí directamente. Pero sinceramente, viendo la cantidad de .desktop que hay no es fácil encontrar cual es el que necesitas borrar.

La otra opción es, abrir el editor de menú del sistema.. ir donde está la aplicación en cuestión y quitarlo. Además, ahí hay algo interesante… te dice donde está ese .desktop situado, lo cual arroja algo de información que te puede servir si quieres eliminarlo desde consola. Pero sinceramente, volvemos  a lo mismo, buscar a mano que enlace es, asegurarte que es ese y luego eliminarlo.

seleccion_003

Pero yo quiero algo más inteligente, porque puede ser que a parte de ese programa, haya más que ya no los tenga en el sistema y anden enlazados con un .desktop. Necesito algo automático que me arroje información para ver todos los enlaces que están rotos.

Así que pasamos a teclearnos un shell script, para este cometido:

# Limpieza de archivos .desktop rotos
#!/bin/sh
for i in ~/.local/share/applications/*.desktop;
do
echo -ne «check $i : »
desktop-file-validate –no-hints –no-warn-deprecated $i 1>/dev/null 2>&1

if [ $? -eq 0 ]; then
echo «OK!»
else
echo «FAIL!»
trash «$i»
fi
done

Para este script utilizamos dos aplicaciones desktop-file-validate (que nos permite validar un fichero .desktop) y trash-cli (que nos permite interactuar con la papelera del sistema, de ese modo, en vez de borrar los .desktop los envío a la papelera y así puedo recuperarlos en caso de fallo).

seleccion_005

Ejecutando el script, me avisa de algunos .desktop que no están bien y los envía a la papelera.

seleccion_007

Hay que tener un poco de cuidado porque el desktop-file-validator, no solo puede marcar un desktop como erróneo si no ecuentra la app que se ejecuta, sino si no está bien formado el archivo siguiendo unas normas (https://www.freedesktop.org/wiki/Software/desktop-file-utils/), es por ello que no elimino los enlaces directamente, sino los dejo en la papelera para revisar.