Corrigir erro "E: Could not get lock /var/lib/dpkg/lock" no Ubuntu

Corrigir erro E: Could not get lock /var/lib/dpkg/lock no Ubuntu

Neste artigo mostrarei de forma simples como corrigir erro E: Could not get lock  /var/lib/dpkg/lock no Ubuntu.

Recentemente estava tentando atualizar o sistema usando o comando apt no Ubuntu quando deparei-me com o seguinte erro:

E: Could not get lock /var/lib/dpkg/lock – open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

Na verdade, há um erro semelhante que você pode ver:

E: Could not get lock /var/lib/apt/lists/lock – open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/
E: Could not get lock /var/lib/dpkg/lock – open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

Ambos os erros são muito semelhantes a outro erro comum do Ubuntu. Unable to lock directory /var/cache/apt/archives/ e o interessante é que as correções para todos esses erros também são semelhantes.

Continue lendo após a Publicidade…

Curso Active Directory Linux Pro 2019

Curso Active Directory Linux Pro 2019

Método 1 Corrigindo o erro E: Unable to lock the administration directory (/var/lib/dpkg/)

Pode haver muitas razões pelas quais você vê esse erro. A primeira e mais óbvia razão poderia ser que algum outro processo está usando a ferramenta de gerenciamento de pacotes APT (em outras palavras, o comando apt ou apt-get). Verifique se o Ubuntu Software Center ou o Synaptic Package Manager está em execução ou não.

Você também pode usar a linha de comando do Linux para localizar e eliminar o processo em execução. Para fazer isso, use o comando abaixo:

ps aux | grep -i apt

Isso mostrará o id do processo executando o apt ou o apt-get. No exemplo abaixo, o ID do processo é 844. Você pode ignorar a última linha contendo ‘grep –color=auto

ps aux grep

Você pode usar este id de processo para matá-lo:

sudo kill -9 <ID do processo>

Outra maneira mais fácil seria usar o comando killall. Isso matará todas as instâncias de um programa em execução.

sudo killall apt apt-get

Método 2 correção adicional do erro: Unable to lock the administration directory (/var/lib/dpkg/)

Normalmente, isso resolveria o problema para você na maioria dos casos. Mas meu caso foi um pouco diferente. Meu sistema estava recém instalado e fui fazer o UPDATE e o UPGRADE e fechei o terminal sem querer. Por esse motivo, não havia processos executando o apt, mas ainda me mostrou o erro.

Nesse caso, a causa raiz é o arquivo de bloqueio. Arquivos de bloqueio são usados ​​para impedir que dois ou mais processos usem os mesmos dados. Quando apt ou apt-get são executados, ele cria arquivos de bloqueio em alguns lugares. Quando o comando apt anterior não foi terminado corretamente, os arquivos de bloqueio não foram excluídos e, portanto, eles impedem novas instâncias de comandos apt/apt-get.

Para corrigir o problema, tudo o que você precisa fazer é remover os arquivos de bloqueio. Mas antes de fazer isso, seria uma boa ideia interromper qualquer processo que esteja usando os arquivos de bloqueio.

Use o comando lsof para obter o ID do processo que contém os arquivos de bloqueio. Execute esses comandos um por um.

lsof /var/lib/dpkg/lock
lsof /var/lib/apt/lists/lock
lsof /var/cache/apt/archives/lock

É possível que os comandos não retornem nada ou retornem apenas um número. Se eles retornarem pelo menos um número, use o (s) número (s) e mate os processos como este. Substitua o PID pelos números que você obteve dos comandos acima:

sudo kill -9 PID

Agora você pode remover com segurança os arquivos de bloqueio usando os comandos abaixo:
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

Depois disso, reconfigure os pacotes.

sudo dpkg –configure -a

Agora, se você executar o comando sudo apt update, tudo ficará bem.

Solução de problemas de erro do dpkg: dpkg frontend is locked by another process

Se você vir o erro “dpkg frontend is locked by another process” durante a execução do método descrito acima, você precisará executar uma etapa adicional.

Primeiro, descubra o ID do processo que está mantendo o arquivo de bloqueio.

lsof /var/lib/dpkg/lock-frontend

O comando acima lhe dará o PID dos processos usando os arquivos de bloqueio. Use este PID para matar o processo.

sudo kill -9 PID

Agora você pode remover o bloqueio e reconfigurar o dpkg:

sudo rm /var/lib/dpkg/lock-frontend
sudo dpkg –configure -a

Continue lendo após a Publicidade…

Curso Active Directory Linux Pro 2019

Curso Active Directory Linux Pro 2019

Isso é tudo! Esse foi o procedimento para corrigir o erro “Could not get lock /var/lib/dpkg/lock“. Você pode fazer perguntas ou compartilhar suas ideias por meio do formulário de comentários abaixo.

Espero ter ajudado com essa dica.

Não deixe de visitar e compartilhar com seus amigos também nosso Portal, lá você encontrará muito conteúdo interessante.

Se achou algum erro nesse post não deixe de nos informar, pois ficaremos muito agradecidos.