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.

 

Anuncios

XnView problemas con libgstapp-0.10.so.0

Desde la desaparición del panorama Linux de picasa, xnview pasa a ser una buena alternativa para visualizar y ordenar tus imágenes. Es un gestor de imágenes muy completo, es gratuito y multiplataforma, así que poco más se le puede pedir.. bueno, si.. que cuando lo vayas a actualizar no te encuentres con este maravilloso error:

No puede arrancarse porque no encuentra la librería libgstapp-0.10.so.0

seleccion_001

Todo esto viene porque debe tener dependencias de esta librería que se utiliza con gstreamer. Concretamente la versión que me da problemas es la de 64bits, que es muy posible que con la versión de 32bits, no de ese problema, o simplemente instalando la librería en cuestión, puedas lanzarlo sin problemas. Con un simple:

sudo apt-get install libgstreamer-plugins-base0.10-0

Pero este no fue mi caso, ya que en mis repositorios no está esa versión de librería (la 0.1), sino la 1.0, así que tras mucho rebuscar dí con la solución, que básicamente era descargar las librerías directamente y hacer su instalación manual, para ello basta con poner en tu terminal:

wget http://fr.archive.ubuntu.com/ubuntu/pool/main/g/gst-plugins-base0.10/libgstreamer-plugins-base0.10-0_0.10.36-1_amd64.deb

wget http://fr.archive.ubuntu.com/ubuntu/pool/universe/g/gstreamer0.10/libgstreamer0.10-0_0.10.36-1.5ubuntu1_amd64.deb

sudo dpkg -i libgstreamer*.deb

Con esto se descarga un par de paquetes deb, que luego instalamos directamente.

Tras volver a lanzarlo, todo ha ido fino.

Por si a alguien más le sirve! Saludos.