Impossible de «apt-get dist-upgrade» en raison d'une erreur de base de données appstreamcli

20

J'ai créé une clé USB avec un Ubuntu 16.04 persistant (version finale). J'ai essayé plusieurs façons, en utilisant Startup Disk Creator et MultiSystem, mais j'obtiens le même résultat final.

Lorsque je démarre sur l'USB et que je fais la mise à jour apt-get, tout va bien. Lorsque j'essaie «apt-get dist-upgrade», j'obtiens:

** (appstreamcli: 2761): CRITIQUE **: Erreur lors du déplacement de l'ancienne base de données. La mise à jour du cache AppStream a échoué.

La seule référence à ce message d'erreur que je peux trouver est https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1561472 mais semble être corrigée, au moins corrigée au moment où la version finale d'Ubuntu 16.04.

En plus: Je veux tester Unity8, qui comprend l'installation de logiciels. Je n'ai pas d'ordinateur de rechange, j'ai donc pensé qu'un USB persistant ferait l'affaire.

N'importe quels preneurs?

Bernmeister
la source
2
Ça rm -rf /var/lib/apt/lists /var/cache/apt; apt update; apt cleanaide?
Olathe
Cela m'est arrivé une fois avec un Live USB non persistant. Pour moi, l'exécution sudo rm -rf /var/lib/apt/listsétait suffisante pour obtenir apt updateet une installation ultérieure fonctionner à nouveau, mais avec la même erreur sur le "CD-ROM" n'ayant pas de fichier de version.
mwfearnley
1
Pourriez-vous s'il vous plaît ouvrir une nouvelle question si vous avez une nouvelle question ou une question de suivi? Si vous abordez des questions à peine liées à des questions existantes, vous élargissez leur portée, ce qui les rend plus difficiles à répondre. En plus de cela, il invalide probablement les réponses existantes. J'ai pris la liberté de supprimer la question complémentaire. Merci.
David Foerster
2
J'ai exactement la même erreur lorsque vous faites sudo apt-get update, et les solutions ici n'a pas aidé: Je l' ai essayé d' enlever /var/lib/apt/listset /var/cache/aptce qui n'a pas résolu le problème. Les autorisations pour /var/cache/app-info/xapian/defaultétaient déjà configurées correctement. Ce qui a aidé, c'est cd /var/cache/app-info/xapian; sudo mv default default_old; sudo mv default_old default. Ceci est expliqué ici: bugs.launchpad.net/ubuntu/+source/appstream/+bug/1601971 (commentaire # 11).
fiktor

Réponses:

29

Cela m'est également arrivé en utilisant la clé USB persistante Ubuntu 16.04.1 live.

La solution d'uncledave n'a pas fonctionné au début, mais comme suggéré, la modification des droits était la solution finale.

Ensuite, j'ai trouvé la réponse # 11 de daniel-gimpelevich pour le bogue 1601971 Les commandes suivantes m'ont aidé à réparerapt-get update

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

Comment ai-je deviné que 755 était le bon masque? La différence entre

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

et

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

Après cette mise à jour apt-get s'est bien passé.

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

Remarque1 La mise à niveau d'une clé USB persistante en direct de cette manière n'est pas suggérée, cela entraînera des problèmes si trop de packages sont installés / mis à niveau.

Note2 Il est préférable d'installer Ubuntu directement sur la clé USB si vous souhaitez l'utiliser comme un "couteau suisse" amorçable.

linux64kb
la source
La qualité de cette réponse est excellente. Continuez comme ça :)
ThatGuy
//, je peux confirmer que cela fonctionne sur 16.04.3 LTS sur une clé USB en direct sur un Dell XPS.
Nathan Basanese
ce travail pour moi .. en WSL aussi .. thnx pour l'info ..
Buddhika Chaturanga
2

Une recherche sur Google m'a conduit à ce lien: sur github

J'ai essayé cette commande et cela fonctionne pour moi:

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

uncledave
la source
6
Veuillez ne pas recommander les 0777autorisations «s'il vous plaît-pirater-mon-système-et-détruire-mes-données» sans raison apparente! Il n'y a presque jamais de raison de le faire, car cela peut être évité avec des modifications plus sensibles comme le changement de propriétaire (de groupe). Voir la réponse de linux64kb pour référence. −1
David Foerster
//, @uncledave, ça 0755marche aussi? Vous avez atteint environ 20 000 personnes, au fait.
Nathan Basanese
1
@NathanBasanese 755 fonctionne à coup sûr
linux64kb
1

Sur mon USB persistant en direct avec 16.04.1, je viens de taper

sudo -i

Puis, comme root

sudo apt-get update Et tout allait bien. alors

exit

Et revenons à mon chemin d'origine ubuntu @ ubuntu.

susansdad
la source
0

Sur mon système (basé sur ubuntu xenial), c'était la disposition initiale des perms:

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

Notez que le groupe n'avait pas d'accès «w». Le correctif était

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

, donc pas de dangers ici (comme dans c0m3h4ckm3 :))

terebinT
la source
-1

Je ne sais pas comment résoudre ce problème correctement, mais appeler apt-get dist-upgradedeux fois fonctionne pour moi, je peux cependant le reproduire sur un Ubuntu installé (au premier appel, il y aura l'erreur, mais le deuxième appel fonctionne).

Defman
la source
J'ai essayé - ça "l'a corrigé", mais quand j'ai essayé de répéter le processus, j'ai eu la même erreur. Donc pas de banane. La suggestion d'Olathe ci-dessus a aidé, mais a conduit à une autre erreur ... voir le commentaire ci-dessus.
Bernmeister