Problème avec appstreamcli lors de l'exécution de la mise à jour d'apt

11

J'ai eu un problème avec les tests Debian aujourd'hui lorsque j'exécutais une mise à jour apt avec le retour suivant:

E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh-cache > /dev/null; fi'
E: Sub-process returned an error code
JonLord
la source
2
Bonjour et bienvenue chez U&L. Vous devriez probablement reformuler ceci en une question et une réponse séparément. Déplacez la solution dans une réponse ci-dessous et marquez-la comme acceptée.
DopeGhoti

Réponses:

14

Après Google, j'ai trouvé des gens qui disaient que la suppression du package appstream résoudrait le problème.

Cette solution fonctionnera mais dans de nombreux cas, cette approche supprimera les packages que vous ne voudrez peut-être pas supprimer.

Une autre solution consiste à commenter les trois dernières lignes du /etc/apt/apt.conf.d/50appstreamfichier comme ceci:

...
#APT::Update::Post-Invoke-Success {
#    "if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh-cache > /dev/null | true; fi";
#};

puis enregistrez le fichier et réexécutez apt-get update.

Après avoir exécuté une mise à niveau du système, il est possible que le package appstream ait une mise à niveau qui puisse corriger cette erreur et un message comme celui-ci peut apparaître:

Configuration file '/etc/apt/apt.conf.d/50appstream'
  ==> Modified (by yourself or by a script) since the installation.
  ==> The package distributor has released an updated version.
    What do you want to do? Your options are:
     Y or I: install the version of the maintainer package
     N or O: keep the currently installed version
       D: Show differences between versions
       Z: start a shell to examine the situation

Vous devez dire Y pour mettre à niveau le fichier que vous avez modifié.

Je publie ceci pour aider les autres personnes susceptibles de rechercher cette erreur.

JonLord
la source
2
apt-get clean

Vider le cache apt semble également l'avoir résolu pour moi. Alors je pourrais courir

apt-get update

sans aucun problème ni avertissement.

Edit: j'étais peut-être trop rapide. Après avoir nettoyé le cache, l'erreur a disparu, mais elle s'est reproduite plus tard.

darkrain
la source
1
Je suis confus; avez-vous eu besoin d'exécuter les deux premières commandes ou le vidage du cache apt était-il suffisant?
Jeff Schaller