Não foi possível 'apt-get dist-upgrade' devido a erro do banco de dados appstreamcli

20

Eu criei um pendrive com um persistente Ubuntu 16.04 (versão de lançamento). Tentei de várias maneiras, usando o Startup Disk Creator e o MultiSystem, mas obtive o mesmo resultado final.

Quando eu inicializo no USB e faço o 'apt-get update', tudo está bem. Quando tento 'apt-get dist-upgrade', recebo:

** (appstreamcli: 2761): CRITICAL **: Erro ao mover o banco de dados antigo para fora do caminho. A atualização do cache do AppStream falhou.

A única referência a essa mensagem de erro que posso encontrar é https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1561472, mas parece estar corrigida, pelo menos quando a versão de lançamento do Ubuntu 16.04

Além: Quero testar o Unity8, que inclui a instalação de software. Como não tenho um computador sobressalente, pensei que um USB persistente faria o truque.

Algum comprador?

Bernmeister
fonte
2
Será que rm -rf /var/lib/apt/lists /var/cache/apt; apt update; apt cleanajuda?
Olathe
Isso aconteceu comigo em uma ocasião com um Live USB não persistente. Para mim, a execução sudo rm -rf /var/lib/apt/listsfoi suficiente para obter apt updatee uma instalação subsequente funcionando novamente, embora com o mesmo erro sobre o "CD-ROM" não ter um arquivo de lançamento.
Mwfearnley
11
Você poderia abrir uma nova pergunta se tiver uma pergunta nova ou de acompanhamento? Se você colocar questões dificilmente relacionadas a questões existentes, estará ampliando o escopo delas, o que dificulta a resposta. Além disso, provavelmente invalida as respostas existentes. Tomei a liberdade de remover a pergunta de acompanhamento. Obrigado.
David Foerster
2
Eu tenho exatamente o mesmo erro ao fazer sudo apt-get update, e as soluções aqui não ajudou: Eu tentei remover /var/lib/apt/listse /var/cache/apte isso não resolver o problema. As permissões para /var/cache/app-info/xapian/defaultjá foram configuradas corretamente. O que ajudou é cd /var/cache/app-info/xapian; sudo mv default default_old; sudo mv default_old default. Isso é explicado aqui: bugs.launchpad.net/ubuntu/+source/appstream/+bug/1601971 (comentário # 11).
Fiktor 31/12/19

Respostas:

29

Isso também aconteceu comigo usando o stick USB persistente do Ubuntu 16.04.1 ao vivo.

A solução da uncledave não funcionou no começo, mas, como sugerido, alterar os direitos foi a solução final.

Então eu encontrei a resposta # 11 de daniel-gimpelevich para o erro 1601971 Os seguintes comandos me ajudaram a repararapt-get update

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

Como eu acho que 755 é a máscara certa? A diferença entre

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

e

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

Após esta atualização, o apt-get correu bem.

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 Atualizar um stick USB persistente ao vivo dessa maneira não é sugerido, pois isso causará problemas se muitos pacotes forem instalados / atualizados.

Nota2 É uma idéia melhor instalar o Ubuntu diretamente no pendrive se você quiser usá-lo como um "canivete suíço" inicializável.

linux64kb
fonte
A qualidade desta resposta é ótima. Continue assim :)
ThatGuy
//, posso confirmar que isso funciona no 16.04.3 LTS em uma unidade USB ativa em um Dell XPS.
Nathan Basanese
este trabalho para mim .. em WSL também .. thnx pela informação ..
Buddhika Chaturanga
2

Uma pesquisa no google me levou a este link: on github

Eu tentei este comando e funciona para mim:

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

uncledave
fonte
6
Por favor, não recomende as 0777permissões aka "por favor, hackear meu sistema e destruir meus dados" sem motivo aparente! Quase nunca há uma razão para fazer isso, porque isso pode ser evitado com modificações mais sensatas, como alterar a propriedade (do grupo). Veja a resposta do linux64kb para referência. −1
David Foerster
//, @uncledave, também 0755funciona? Você alcançou ~ 20k pessoas, aliás.
Nathan Basanese
11
@NathanBasanese 755 funciona com certeza
linux64kb
1

No meu USB ao vivo persistente com 16.04.1, apenas digitei

sudo -i

Então, como root

sudo apt-get update E tudo estava bem. Então

exit

E voltando ao meu caminho original, ubuntu @ ubuntu.

susansdad
fonte
0

No meu sistema (baseado no ubuntu xenial), este era o layout inicial das permissões:

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

Observe que o grupo não teve acesso 'w'. A correção foi

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

, então não há perigos aqui (como em c0m3h4ckm3 :))

terebinT
fonte
-1

Não sei como corrigir esse problema corretamente, mas ligar apt-get dist-upgradeduas vezes está funcionando para mim, mas eu posso reproduzi-lo em um Ubuntu instalado (na primeira chamada haverá o erro, mas a segunda chamada funciona).

Defman
fonte
Tentei isso - "consertou", mas quando tentei repetir o processo, obtive o mesmo erro. Então, sem banana. A sugestão de Olathe acima ajudou, mas depois levou a outro erro ... veja o comentário acima.
Bernmeister