Ubuntu 16.04: erro appstreamcli enquanto get-update [duplicate]

10

Estou tentando ativar o Wi-Fi. Eu tentei sudo apt-get update . Mas estou recebendo este erro:

The AppStream system cache was updated, but some errors were detected, which might lead to missing metadata. Refer to the verbose log for more information.
Reading package lists... Done
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

Como posso completar sudo apt-get update e habilitar o Wifi no Ubuntu-16.04?

    
por Nidhi Mehta 19.03.2017 / 08:33

3 respostas

11

Eu tive o mesmo problema e o problema era que havia (no meu caso) um caractere escapado inadequadamente no arquivo /var/cache/app-info/xmls/fwupd.xml na linha 265 que quebrou o xml, daí o erro. Na linha <checksum filename="Firmware_SF30&SN30_Pro_V1.26.dat" target="content" type="sha1">3ef2bdee8aca2a45b9f53b4d4cce9722523f57f8</checksum> , o símbolo & deve ser codificado &amp; para que este seja um xml válido.

    
por Nikola 07.07.2018 / 17:47
3

Um bug similar foi reportado aqui

Esta resposta sugere o seguinte para resolvê-lo ( algumas pessoas disseram que isso as ajudou):

  

Remover /usr/bin/appstreamcli é bom se você instalar o pacote corrigido posteriormente.

     

Para instalar isto manualmente, por favor faça (para amd64, ajuste URLs para outras arquiteturas):

cd /tmp && mkdir asfix
cd asfix
wget https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb
wget https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb
sudo dpkg -i *.deb
    
por Yaron 19.03.2017 / 08:46
0

Enquanto isso não é backported para xenial, pode-se atualizar libappstream-glib8 para a versão em biônico e configurar para receber upgrades para este pacote (mas não o resto) de bionic.

Procedimento

Se você se encontrar em um dos casos marcados ABORT, apenas desfaça todas as etapas que você fez até agora e execute sudo apt update no final (eu não espero que isso aconteça, eles estão lá apenas como uma salvaguarda ).

  1. salve um arquivo chamado (digamos) future.list na dir /etc/apt/sources.list.d (você precisará do sudo) com o seguinte conteúdo:

    deb mirror://mirrors.ubuntu.com/mirrors.txt bionic main
    deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-updates main
    deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-security main
    
  2. salve um arquivo chamado (digamos) future.pref na dir /etc/apt/preferences.d (você precisará do sudo novamente) com o seguinte conteúdo:

    Package: *
    Pin: release a=bionic*
    Pin-Priority: 50
    
  3. sudo apt update

  4. apt list -u e confirme que retorna somente "Listando ... Concluído". Se retornar mais coisas, ABORT (veja acima).
  5. %código%. Se, neste estágio, o apt afirma que é necessário mais para satisfazer as dependências do que apenas substituir a versão antiga pela nova, ABORT (veja acima).
  6. sudo apt install -assume-no -t=bionic libappstream-glib8
  7. restart (Descobri que isso era necessário, provavelmente para carregar a nova versão da biblioteca compartilhada, talvez reiniciar algum serviço)
  8. sudo mv /var/cache/app-info/xmls/fwupd.xml ~/fwupd.xml.bck
  9. sudo fwupdmgr refresh
por ricab 17.07.2018 / 18:34