Hoy al realizar la instalación de un programa en mi querido Ubuntu, me he encontrado con un error después de ejecutar el update. El error viene diciendo algo así como: » AppStream cache update completed, but some metadata was ignored due to errors".
En principio no le di mayor importancia y continué con la instalación. Esta terminó correctamente, pero por curiosidad me puse a investigar un poco a que se debía este error. La experiencia me dice que los pequeños errores de hoy, te pueden tocar mucho las narices mañana.
Como digo, buscando un poco por la red encontré en el foro de Ubuntu el motivo de dicho error. Parece ser que el error viene dado por el paquete AppStream que se instala por defecto en Ubuntu 16.04 (que es la versión 0.9.4). En Ubuntu 16.10 el sistema operativo recibe automáticamente una actualización desde sus repositorios estandar que corrige automáticamente el problema. Para los que utilizamos la versión LTS de Ubuntu, nos encontramos que nos recibimos esa actualización, por lo que hay que realizarla manualmente.
La versión actualizada del paquete con la corrección de errores para Ubuntu 16.04 sólo se proporciona a través del repositorio xenial-backports, que tiene una prioridad menor que los demás. Como ya he dicho, esto significa que no se actualizará a esta versión corregida a menos que se haga manualmente.
Para habilitar el repositorio xenial-backports en primer lugar hay que habilitar el repositorio backports, como se indica en el siguiente link. (Pero ojo, sólo hay que habilitar el repositorio. No es necesario modificar la prioridad de este).
Solucionar el error de la caché de AppStream al actualizar Ubuntu
Después de habilitar el repositorio, actualiza la versión de xenial-backports escribiendo:
sudo apt install appstream/xenial-backports
Ahora tu paquete de aplicación debe actualizarse a la versión 0.10.1. Esta es la que contiene la actualización que solventa el problema.
$ appstreamcli --version
Nos devolverá lo siguiente:
AppStream CLI tool version: 0.10.1
Ahora fuerza la actualización de los datos de la caché con el siguiente comando:
$ sudo appstreamcli refresh --force
Esta orden devolverá:
AppStream cache update completed successfully.
Con esto ya no deberías ver ninguna advertencia cuando realices un update.