No se puede 'apt-get dist-upgrade' debido a un error en la base de datos appstreamcli

20

He creado una memoria USB con un Ubuntu 16.04 persistente (versión de lanzamiento). Intenté un par de formas, usando Startup Disk Creator y MultiSystem, pero obtengo el mismo resultado final.

Cuando inicio en el USB y hago 'apt-get update', todo está bien. Cuando intento 'apt-get dist-upgrade' obtengo:

** (appstreamcli: 2761): CRÍTICO **: Error al mover la base de datos antigua fuera del camino. La actualización de la memoria caché de AppStream falló.

La única referencia a este mensaje de error que puedo encontrar es https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1561472 pero parece estar solucionado, al menos solucionado para cuando la versión de lanzamiento de Ubuntu 16.04.

Aparte: quiero probar Unity8, que incluye la instalación de software. No tengo una computadora de repuesto, así que pensé que un USB persistente sería suficiente.

¿Ningún arrendatario?

Bernmeister
fuente
2
Ciervas rm -rf /var/lib/apt/lists /var/cache/apt; apt update; apt cleanayuda?
Olathe
Esto me ha sucedido en una ocasión con un Live USB no persistente. Para mí, la ejecución sudo rm -rf /var/lib/apt/listsfue suficiente para que apt updateuna instalación posterior volviera a funcionar, aunque con el mismo error acerca de que el "CD-ROM" no tenía un archivo de lanzamiento.
mwfearnley
1
¿Podría abrir una nueva pregunta si tiene una pregunta nueva o de seguimiento? Si agrega preguntas poco relacionadas a las preguntas existentes, está ampliando su alcance, lo que las hace más difíciles de responder. Además de eso, probablemente invalida las respuestas existentes. Me tomé la libertad de eliminar la pregunta de seguimiento. Gracias.
David Foerster
2
Tengo exactamente el mismo error cuando se hace sudo apt-get update, y las soluciones aquí no ayudó: He intentado quitar /var/lib/apt/listsy /var/cache/apt, y esto no resuelve el problema. Los permisos para /var/cache/app-info/xapian/defaultya estaban configurados correctamente. Lo que ayudó fue cd /var/cache/app-info/xapian; sudo mv default default_old; sudo mv default_old default. Esto se explica aquí: bugs.launchpad.net/ubuntu/+source/appstream/+bug/1601971 (comentario # 11).
fiktor

Respuestas:

29

Esto también me sucedió usando una memoria USB persistente de Ubuntu 16.04.1 en vivo.

La solución de uncledave no funcionó al principio, pero como se sugirió, cambiar los derechos fue la solución final.

Luego encontré la respuesta # 11 de daniel-gimpelevich para el error 1601971 Los siguientes comandos me ayudaron a repararapt-get update

sudo chmod -R a+rX,u+w /var/cache/app-info/xapian/default

¿Cómo supuse que 755 es la máscara correcta? La diferencia entre

ls -ld /var/cache/app-info/xapian
drwxr-xr-x 1 root root 4096 Nov 19 20:35 /var/cache/app-info/xapian/

y

ls -ld /var/cache/app-info/xapian/default
drw-r--r-- 2 root root 4096 Jul 19 20:54 /var/cache/app-info/xapian/default

Después de esta actualización de apt-get funcionó bien.

sudo apt-get update
Hit:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [95.7 kB]      
Fetched 190 kB in 0s (312 kB/s)                                                
Reading package lists... Done

Nota1 No se sugiere actualizar una memoria USB persistente de esta manera, ya que causará problemas si se instalan / actualizan demasiados paquetes.

Nota2 Es una mejor idea instalar Ubuntu directamente en la memoria USB si desea usarlo como una "navaja suiza" de arranque.

linux64kb
fuente
La calidad de esta respuesta es excelente. Sigue así :)
ThatGuy
//, puedo confirmar que esto funciona en 16.04.3 LTS en una unidad USB en vivo en un Dell XPS.
Nathan Basanese
esto funciona para mí ... en WSL también ... gracias por la información ...
Buddhika Chaturanga
2

Una búsqueda en Google me llevó a este enlace: en github

He probado este comando y funciona para mí:

chmod 777 /var/cache/app-info/xapian/default -R

desechar
fuente
66
¡Por favor, no recomiende los 0777permisos aka "por favor, hackea mi sistema y destruye mis datos" sin razón aparente! Casi nunca hay una razón para hacerlo porque se puede evitar con modificaciones más sensatas, como cambiar la propiedad (de grupo). Consulte la respuesta de linux64kb como referencia. −1
David Foerster
//, @uncledave, ¿ 0755funciona también? Has alcanzado ~ 20k personas, por cierto.
Nathan Basanese
1
@NathanBasanese 755 funciona seguro
linux64kb
1

En mi USB en vivo persistente con 16.04.1, solo escribí

sudo -i

Entonces como lo hizo la raíz

sudo apt-get update Y todo estuvo bien. Luego

exit

Y de vuelta a mi ruta original ubuntu @ ubuntu.

susansdad
fuente
0

En mi sistema (basado en ubuntu xenial) este fue el diseño inicial de permisos:

drwxr-xr-x 2 root root 4096 Sep 28 12:32 /var/cache/app-info/xapian/default/

Tenga en cuenta que el grupo no tenía acceso 'w'. La solución fue

chmod g+w /var/cache/app-info/xapian/default

, así que no hay peligros aquí (como en c0m3h4ckm3 :))

terebinT
fuente
-1

No sé cómo solucionar este problema correctamente, pero llamar apt-get dist-upgradedos veces funciona para mí, aunque puedo reproducirlo en un Ubuntu instalado (en la primera llamada habrá un error, pero la segunda llamada funciona).

Defman
fuente
Intenté eso, lo "solucionó", pero cuando intenté repetir el proceso, obtuve el mismo error. Entonces no hay plátano. La sugerencia de Olathe anterior ayudó, pero luego condujo a otro error ... vea el comentario anterior.
Bernmeister el