Como corrigir o erro não foi possível obter trava /var/lib/dpkg/lock-frontend
Em uma aula de Linux, recentemente, um aluno estava tentando fazer a atualização de pacotes no sistema (era o Ubuntu Linux 18.04), e se deparou com seguinte mensagem de erro ao tentar realizar o procedimento:
“não foi possível obter trava /var/lib/dpkg/lock-frontend”
Por mais que ele tentasse repetir a operação, a mensagem persistia. Então, ele me chamou e perguntou do que se tratava.
Este é um erro comum em distribuições baseadas no Debian, como o Ubuntu, Mint e outras, ocasionado por vários problemas diferentes, mas que pode ser corrigido de forma simples.
A causa mais comum desse erro é que algum processo está usando a ferramenta de gerenciamento de pacotes apt no momento (apt / apt-get). Por exemplo, a Central de Software do Ubuntu ou o Synaptic podem estar executando alguma tarefa de atualização do sistema.
Podemos descobrir qual processo está travando o apt executando o comando seguinte:
$ ps aux | grep -i apt
Se houver algum processo listado, você pode matá-lo com o comando kill, conforme a sintaxe a seguir:
$ sudo kill -9 id_processo
Nem sempre isso funcionará. Algumas vezes não há, aparentemente, nenhum processo em execução relacionado ao apt, mas ainda assim você será brindado com a mensagem de erro anterior.
Neste caso, o que pode estar acontecendo é um problema com arquivos de trava (“lock files”), que são arquivos usados para impedir que dois ou mais processos distintos usem os mesmos dados, simultaneamente. Quando o apt (ou outro comando relacionado) é executado, ele cria arquivos de trava no sistema. Se, por algum motivo, o apt não for encerrado corretamente – por exemplo, foi interrompido durante uma atualização – os arquivos de trava não são excluídos e permanecem no sistema, realizando seu trabalho, que é o de impedir que outras instâncias do apt sejam executadas.
Neste caso, vamos proceder de forma diferente para resolver o problema – vamos simplesmente remover os arquivos de trava.
Para isso, execute os comandos a seguir no terminal do Linux:
$ sudo rm /var/lib/apt/lists/lock $ sudo rm /var/lib/dpkg/lock $ sudo rm /var/lib/dpkg/lock-frontend $ sudo rm /var/cache/apt/archives/lock
Reconfigure os pacotes na sequência:
$ sudo dpkg --configure -a
Logo após, o sistema apt deve estar novamente liberado, e você será capaz de executar suas tarefas normalmente, como atualizar listas de repositórios, atualizar programas e instalar ou excluir pacotes do sistema.