IT Analyst; Lic. Computer Science, Bel. in Theology, Esp. Biblical Theology, Esp. in New Testament Theology, Esp. in Systematic Theology and Esp. Computer Network.
Recentemente, eu estava tentando instalar um aplicativo usando o comando apt no Ubuntu quando encontrei o seguinte erro:
E: Não foi possível obter o bloqueio / var / lib / dpkg / lock - aberto (11: recurso temporariamente indisponível) E: Não foi possível bloquear o diretório de administração (/ var / lib / dpkg /); outro processo está sendo usado?
De fato, há um erro semelhante que você pode ver:
E: Não foi possível obter o bloqueio / var / lib / apt / lists / lock - aberto (11: Recurso temporariamente indisponível) E: Não foi possível bloquear o diretório / var / lib / apt / lists / E: Não foi possível obter o bloqueio / var / lib / dpkg / lock - open (11: recurso temporariamente indisponível) E: Não é possível bloquear o diretório de administração (/ var / lib / dpkg /), outro processo está sendo usado?
Em alguns casos, você pode vê-lo enquanto usa o Software Center:
Corrigindo o erro "Não foi possível bloquear o diretório de administração (/ var / lib / dpkg /)"
Você vê esse erro porque algum outro programa está tentando atualizar o Ubuntu. Quando um comando ou aplicativo está atualizando o sistema ou instalando um novo software, ele bloqueia o arquivo dpkg (gerenciador de pacotes Debian).
Esse bloqueio é feito para que dois processos não alterem o conteúdo ao mesmo tempo, pois podem levar a situações injustificadas e um possível sistema danificado.
Vamos ver quais etapas você pode executar para corrigir esse problema de 'incapaz de bloquear o diretório de administração'.
Método 0:
A primeira coisa que você deve fazer é verificar se algum outro programa pode estar executando a atualização do sistema ou instalando um programa.
Se você estiver usando a linha de comando, verifique se um aplicativo como Software Center, Software Updater, Synaptic, Gdebi está executando alguma atualização / instalação. Se for esse o caso, aguarde o programa concluir o processo em execução.
Se não houver esse aplicativo em execução, verifique todas as janelas abertas do terminal e veja se você está executando uma atualização ou instalando um programa. Se sim, aguarde o término.
Se nenhuma das opções acima estiver acontecendo, verifique qual outro processo está executando o comando apt (gerenciador de pacotes para manipular o software). Use este comando:
Se você perceber que o apt está sendo usado por um programa como o apt.systemd.daily update , você está com sorte, meu caro leitor.
Este é um daemon que é executado em segundo plano e verifica se há atualizações do sistema automaticamente quando você inicia o sistema.
Eu acho que no Ubuntu 18.04 e versões superiores, ele pode até tentar baixar e instalar as importantes atualizações de segurança por conta própria. Pelo menos é o que vejo nas configurações padrão da ferramenta Software & Updates na área de trabalho do Ubuntu.
Se você estiver no servidor Ubuntu, verifique se possui atualizações autônomas ativadas, verificando o conteúdo do arquivo /etc/apt/apt.conf.d/20auto-upgrades .
Portanto, se você perceber que o apt.systemd.daily está usando o processo apt, tudo o que você precisa fazer é aguardar alguns minutos. Quando a atualização automática terminar, você poderá instalar o software normalmente.
Como solução permanente, você pode desativar completamente a verificação de atualizações automáticas e atualizações autônomas. No entanto, não aconselho isso por motivos de segurança.
Agora, esse era o cenário simples e poderia ser tratado com facilidade. Mas isso nem sempre pode ser o caso. Se algum outro programa estiver usando o apt, você precisará lidar com isso de maneira diferente.
Isso mostrará o ID do processo executando o apt ou apt-get. No exemplo abaixo, o ID do processo é 7343. Você pode ignorar a última linha que contém 'grep –color = auto'.
Você pode usar o ID do processo para finalizá-lo enviando o sinal SIGTERM . Substitua o <process_id> pelo número que você obteve na saída do comando anterior.
sudo kill <process_id>
Verifique se o processo foi interrompido executando o 'ps aux | comando grep -i apt '. Se ele ainda estiver em execução, force-o com o sinal SIGKILL:
sudo kill -9 <process_id>
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
O método acima resolveria o problema para você na maioria dos casos. Mas o meu caso foi um pouco diferente. Eu estava atualizando meu sistema e fechei o terminal acidentalmente. Por esse motivo, não houve processos executando o apt, mas ele ainda me mostrou o erro.
Nesse caso, a causa raiz é o arquivo de bloqueio. Como mencionado anteriormente, os arquivos de bloqueio são usados para impedir que dois ou mais processos usem os mesmos dados. Quando os comandos apt ou apt-get são executados, eles criam arquivos de bloqueio em alguns lugares. Se o comando apt anterior não tiver sido finalizado corretamente, os arquivos de bloqueio não serão excluídos e, portanto, impedirão novas instâncias de comandos apt-get ou apt .
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 mantém os arquivos de bloqueio. Verifique o erro e veja de quais arquivos de bloqueio está reclamando e obtenha o ID dos processos que mantêm esses arquivos de bloqueio.
É 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 <process_id> pelos números que você obteve dos comandos acima):
sudo kill -9 <process_id>
Agora você pode remover com segurança os arquivos de bloqueio usando os comandos abaixo:
Agora, se você executar o comando sudo apt update, tudo ficará bem.
Solução de problemas 1: “Não é possível adquirir o bloqueio de front-end do dpkg”
Se você vir um erro como este:
abhishek@nuc:~$ sudo apt install grub-customizer
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
Você deve descobrir qual processo está mantendo o frontend de bloqueio usando o comando lsof, conforme discutido nas seções anteriores:
sudo lsof /var/lib/dpkg/lock-frontend
Isto é o que isso mostrou para mim:
abhishek@nuc:~$ sudo lsof /var/lib/dpkg/lock-frontend
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
unattende 2823 root 5uW REG 8,2 0 145221 /var/lib/dpkg/lock-frontend
Se você vir a coluna COMMAND ' autônoma ', isso significa que atualizações de segurança autônoma estão em execução. Você deve esperar o processo terminar . Basicamente, é isso que eu discuti no método 0, mas você provavelmente pulou isso.
Se o COMMAND for outra coisa, você pode interromper o processo e remover o arquivo de bloqueio. Você pode ver a identificação do processo na coluna PID. Use este PID para interromper o processo. Depois disso, remova o arquivo de bloqueio e execute o comando update para verificar se ele foi corrigido.
Solução de problemas 2: “dpkg: error: o dpkg frontend está bloqueado por outro processo”
Se você vir o erro "o dpkg frontend está bloqueado por outro processo" ao executar as etapas no método 2, você precisará de uma etapa adicional.
Primeiro, descubra o ID do processo que está mantendo o arquivo de bloqueio.
sudo lsof /var/lib/dpkg/lock-frontend
O comando acima fornecerá os detalhes dos processos usando os arquivos de bloqueio. Use o ID do processo para eliminar este programa:
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
Isso funcionou para você? Qual método o corrigiu para você?
Espero que esta pequena dica tenha ajudado a corrigir o erro "Não foi possível obter o bloqueio / var / lib / dpkg / lock". Se sim, informe-me nos comentários qual método funcionou para você.
Social