Como consertar pacotes quebrados no Linux

Como consertar pacotes quebrados no Linux
⌛ Reading Time: 8 minutes

Os gerenciadores de pacotes do Linux, como Apt e DNF, são extremamente poderosos e intuitivos, mas isso não significa que as coisas não possam dar errado. Ocasionalmente, a instalação de um pacote dá errado e você precisa juntar as peças. Os gerenciadores de pacotes têm a habilidade de consertar pacotes quebrados e pular atualizações quebradas para fazer seu sistema funcionar novamente e evitar problemas no futuro. Este artigo aborda como consertar pacotes corrompidos no Linux.

Essas dicas e truques devem ajudá-lo a se desvencilhar na maioria dos casos. Eles são todos bastante universais, mas cada situação é diferente, então tenha isso em mente ao tentar depurar sua própria situação.

Reparando Pacotes Quebrados no Ubuntu / Mint / Debian

O apt possui alguns sinalizadores que você pode usar para consertar dependências ausentes ou pacotes que quebraram por uma razão ou outra durante a instalação. Um uso comum aqui seria instalar um .deb de terceiros e descobrir que ele possui dependências que você não conhece. Essas dependências provavelmente não serão puxadas por conta própria, e dpkg vai reclamar que o pacote está faltando neles. Em qualquer caso, você pode tentar os seguintes passos.

Primeiro, execute uma atualização para certificar-se de que não haja versões mais recentes dos pacotes necessários.

Em seguida, você pode tentar forçar o Apt a procurar e corrigir quaisquer dependências ausentes ou pacotes corrompidos ao tentar instalar o pacote incorreto novamente. Isso realmente instalará todas as dependências ausentes e reparará as instalações existentes.

Outro lugar onde podem surgir erros nas instalações de pacotes é o processo de configuração. Nos bastidores, o dpkg está cuidando desta parte, não do Apt, então seria lógico que quando um pacote falha durante a configuração, o dpkg é a ferramenta a ser usada para consertá-lo.

Reconfigurar Ubuntu DPKG

Comece tentando forçar o dpkg a reconfigurar quaisquer pacotes quebrados ou parcialmente configurados.

Se isso não resolver o problema, você pode adotar uma abordagem mais contundente. Comece listando todos os pacotes marcados pelo dpkg como requerendo uma reinstalação.

Você deve ver o (s) pacote (s) problemático (s) lá. Contanto que não haja nada que não pareça pertencer a esse local, você pode forçar a remoção dos pacotes quebrados.

Quando o dpkg estiver pronto, tente limpar com o Apt.

Com alguma sorte, isso o levará de volta ao ponto de partida. Ele não vai te dar os pacotes quebrados que você tentou instalar, mas pelo menos o Apt estará funcional novamente, e você pode voltar a usá-lo para tentar instalar o pacote e suas dependências.

Bloqueio DPKG Permanente

Há um problema menos comum com os bloqueios do dpkg impedindo você de fazer qualquer coisa. Cada vez que você tenta usar Apt ou dpkg, obtém um erro dizendo que outro aplicativo já é … quando não está.

Na verdade, é fácil deletar o arquivo de bloqueio impedindo que você use o Apt e volte a fazer o que você precisa. Às vezes, esses arquivos de bloqueio permanecem no local após um erro de instalação ou queda de energia, prejudicando o processo e evitando que o arquivo seja removido automaticamente. Nesse caso, você precisará fazer isso sozinho.

Para uma boa medida, exclua o bloqueio no cache.

Reparando Pacotes Quebrados no Fedora / CentOS / RHEL

Consertar pacotes quebrados no Fedora / CentOS / RHEL é menos comum, já que yum e dnf fazem um ótimo trabalho para garantir que os pacotes sejam instalados corretamente. No entanto, às vezes as coisas se confundem no uso do pacote. O comando para fazer isso em sistemas baseados em rpm é:

Corrigir pacotes quebrados Linux Rpm Va

O -V opção é para verificar, o que significa que irá percorrer e comparar as informações dos arquivos instalados com as informações armazenadas no rpm base de dados. Isso é um pouco inútil, pois geralmente fornece uma longa lista de arquivos, mas pode fornecer por onde começar se você estiver tendo problemas com um determinado aplicativo. Você pode executar um dnf reinstall em qualquer pacote que você veja nessa lista que possa estar causando problemas.

Isso definirá todos os metadados como expirados, de modo que rastreará todos os repositórios que você habilitou e procurará por uma nova versão desse pacote. Se você descobrir que há dependências quebradas com esse pacote, o DNF provavelmente reclamará e pedirá que você use o --skip-broken bandeira. Isso também pode significar que você não tem um repositório específico habilitado para puxar uma dependência, então você pode ter que fazer alguma pesquisa lá.

Reparando Pacotes Quebrados no Arco

Embora o gerenciador de pacotes do Arch tenha muitas semelhanças com o do Debian, é uma besta totalmente diferente. A primeira etapa para diagnosticar seu problema é verificar se os repositórios estão atualizados e tentar uma atualização completa:

Se suas tentativas de instalar o pacote ou de fazer uma atualização do sistema ainda estiverem fracassando, temos que isolar a causa de acordo com o que o terminal disse a você:

“Pacote inválido ou corrompido”

Fazer alterações no “pacman.conf” de qualquer maneira pode causar problemas que causam pacman para rotular incorretamente os pacotes como corrompidos. O culpado mais provável aqui é um arquivo parcial (“.part”) no cache do gerenciador de pacotes, e sua solução é removê-lo:

Sempre há uma chance de que o pacote que você está tentando instalar esteja realmente corrompido e não forneça metadados válidos para o Arch. Nesse caso, você terá que esperar que o mantenedor do pacote o atualize. Se o pacote estiver instalado em seu sistema e causando problemas durante uma atualização, remova-o com:

“Incapaz de bloquear o banco de dados”

Como o apt do Debian, o gerenciador de pacotes do Arch cria um arquivo de bloqueio durante as operações. Se você experimentou uma queda de energia ou pacman passou por uma interrupção difícil da qual não foi possível remover o bloqueio, é muito provável que deixe um arquivo de bloqueio.

Primeiro, descubra se algum processo em seu computador ainda está usando o arquivo:

Linuxpackages Lockpid

Na imagem acima, um processo com ID 121497 está usando o bloqueio de arquivo. Se você está curioso sobre o processo e deseja mais informações, use ps:

Linuxpackages Pspid

No meu caso, outra instância do pacman possui o arquivo de bloqueio. A maneira mais segura de remover o bloqueio é primeiro encerrar esse processo:

Agora que o processo está morto, remova o arquivo de bloqueio:

Você está pronto para ir agora!

“Arquivos conflitantes / arquivo existente no sistema de arquivos”

Isso acontece durante as atualizações onde pacman detecta um conflito. Antes de consertar qualquer coisa, preste atenção ao caminho para o arquivo do qual o gerenciador de pacotes está reclamando.

A primeira coisa que precisamos descobrir é quem é o proprietário do arquivo:

Se for propriedade de um usuário e não de outro pacote, basta removê-lo:

Se ele pertence a outro pacote, a coisa mais segura que você pode fazer é esperar que o mantenedor do pacote conserte o conflito por conta própria. Às vezes, isso não é uma opção, e você quer que as coisas sejam feitas agora.

A maneira mais simples de fazer isso é usar o --overwrite bandeira em pacman. Só saiba que isso é geralmente inseguro e pode fazer com que alguns aplicativos não funcionem corretamente em seu sistema. Eu sugiro fazer backups antes de executar isso.

O --overwrite flag permite que o gerenciador de pacotes do Arch ignore as regras de propriedade para um arquivo em particular e apenas role pela atualização. Exemplo:

Se o comando acima não funcionar, substitua o nome do arquivo pelo seu caminho absoluto. Alguns usuários relataram que remover a barra inicial (“/”) na frente do caminho faz o comando funcionar quando está sendo teimoso.

perguntas frequentes

1. Posso aplicar as correções de arco com um auxiliar AUR?

Geralmente sim. Substitua “pacman” pelo seu auxiliar AUR nos comandos deste guia. Exemplo:

2. Estas instruções são seguras?

Na maior parte, todas as instruções aqui são tão seguras quanto qualquer outra operação de gerenciamento de pacotes. A principal exceção é quando você está removendo arquivos de bloqueio. Se você tiver uma maneira de fazer isso, é sempre importante eliminar quaisquer processos que possam estar usando esses arquivos antes de removê-los. Fique atento ao que seu sistema está fazendo. Você pode ter esquecido uma instância do apt ou pacman em execução em algum lugar!

A melhor prática seria sempre fazer backup do sistema antes de qualquer atualização.

3. O que devo fazer se interromper uma atualização?

Quebrando um processo de atualização pressionando Ctrl + C , encerrar o processo do gerenciador de pacotes ou fechar o terminal prematuramente resultará em algum nível de corrupção em seu banco de dados de pacotes que pode complicar as coisas para você quando tentar instalar outra coisa. Para corrigir isso, limpe o cache e repita a atualização.

No Debian / Ubuntu / Mint / Pop! _OS / etc .:

No Fedora / CentOS / RHEL:

No Arco:

Empacotando

Esperançosamente, uma dessas correções funcionou para você e você voltou a trabalhar em seu sistema Linux normalmente. Lembre-se de que a melhor maneira de lidar com uma situação totalmente descontrolada é tentar voltar ao que era antes. Não tente avançar e adicionar mais coisas para resolver uma quebra adicionando mais coisas, a menos que você saiba exatamente o que está fazendo. Provavelmente, você acabará com uma confusão emaranhada de coisas quebradas que serão mais difíceis de resolver.

Você também pode precisar limpar seu sistema Linux para se livrar de pacotes desnecessários e corrompidos. Se a causa for um PC antigo incapaz de suportar o software mais recente, você também pode fazer uso destas três maneiras de fazer um bom uso do seu PC antigo.

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.