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…

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…

Isso é tudo! Esse foi o procedimento para corrigir o erro “Could not get lock /var/lib/dpkg/lock“.

Leia também os artigos:

Como reparar a Inicialização do Ubuntu?

Como instalar o Chrome no Kali Linux?

Como criar uma partição de disco no Linux?

Laboratório de Serviço de Rede – Linux Debian 10

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.

Domingos Cruz de Souza Formado em Análise e Desenvolvimento de Sistemas, Amante da tecnologia, Trabalha com desenvolvimento de sites/blogs em wordpress e criador do Portal do Especialista.