Correção “Incapaz de bloquear o diretório de administração (/var/lib/dpkg/)” no Ubuntu

Embora usando o comando apt-get ou a relativamente nova ferramenta de gerenciamento de pacotes APT no Ubuntu Linux ou suas derivadas como o Linux Mint (que eu realmente uso como meu sistema operacional principal para fazer o trabalho diário), você pode ter encontrado o erro – “incapaz de bloquear o diretório de administração (/var/lib/dpkg/) é outro processo usando-o” na linha de comando.

Este erro pode ser tão irritante especialmente para novos usuários Linux (Ubuntu) que podem não saber exatamente a causa do erro.

Below é um exemplo, mostrando o erro de arquivo de bloqueio no Ubuntu 16.10:

tecmint@TecMint:~$ sudo apt install neofetch password for tecmint: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?

A saída abaixo é outra possível instância do mesmo erro:

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?

Como você pode resolver o erro acima no caso de esbarrar nele no futuro? Existem várias maneiras de lidar com este(s) erro(s), mas neste guia, vamos percorrer as duas maneiras mais fáceis e provavelmente as mais eficazes de resolvê-lo.

Localizar e Matar todos os processos apt-get ou apt

Executar o comando abaixo para gerar uma lista de todos os processos cujo nome compreende a palavra apt, você obterá uma lista com todos os processos apt ou apt-get usando os comandos ps e grep juntamente com um pipeline.

$ ps -A | grep apt
Localizar processos apt e apt-get

Para cada processo apt-get ou apt que você puder ver na saída do comando acima, mate cada processo usando o comando abaixo.

O ID do processo (PID) é encontrado na primeira coluna da captura de tela acima.

$ sudo kill -9 processnumberOR$ sudo kill -SIGKILL processnumber

Por exemplo, no comando abaixo onde 9 é o número do sinal SIGKILL, matará o primeiro processo do apt:

$ sudo kill -9 13431OR$ sudo kill -SIGKILL 13431

Delete the lock Files

Um arquivo de lock simplesmente impede o acesso a outro(s) arquivo(s) ou alguns dados no seu sistema Linux, este conceito está presente no Windows e em outros sistemas operacionais também.

Quando você executa um comando apt-get ou apt, um arquivo lock é criado sob qualquer um desses diretórios /var/lib/apt/lists/, /var/lib/dpkg/ e /var/cache/apt/archives/.

Isso ajuda a evitar que o processo apt-get ou apt que já está sendo executado seja interrompido por um usuário ou por outros processos do sistema que precisariam trabalhar com arquivos sendo usados pelo apt-get ou apt. Quando o processo termina a execução, o arquivo lock é então excluído.

Important: Caso um lock ainda esteja saindo nos dois diretórios acima sem nenhum processo apt-get ou apt em execução, isso pode significar que o processo foi mantido por uma razão ou outra, portanto você precisa excluir os arquivos lock para limpar o erro.

Execute primeiro o comando abaixo para remover o arquivo de bloqueio no diretório /var/lib/dpkg/:

$ sudo rm /var/lib/dpkg/lock

Depois force o(s) pacote(s) a reconfigurar assim:

$ sudo dpkg --configure -a

Alternativamente, exclua os arquivos de bloqueio no diretório /var/lib/apt/lists/ e o diretório de cache como abaixo:

$ sudo rm /var/lib/apt/lists/lock$ sudo rm /var/cache/apt/archives/lock

Next, atualize sua lista de fontes de pacotes da seguinte forma:

$ sudo apt updateOR$ sudo apt-get update

Em conclusão, nós passamos por dois métodos importantes para lidar com um problema comum enfrentado pelos usuários do Ubuntu (e suas derivadas), enquanto executando os comandos apt-get ou apt, assim como os comandos aptitude.

Você tem algum outro método confiável para compartilhar, destinado a lidar com este erro comum? Então entre em contato conosco através do formulário de feedback abaixo.

Além disso, você também pode querer aprender como encontrar e matar processos em execução e ler um guia simples de comandos kill, pkill e killall para terminar um processo no Linux.

Deixe uma resposta

O seu endereço de email não será publicado.