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?


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.


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


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.


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 :))


-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).


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.