Eu recebo este erro ao tentar usar apt-get
:
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 posso consertar isso?
apt
package-management
dpkg
La Ode Adam Saputra
fonte
fonte
sudo lsof /var/lib/dpkg/lock
para encontrar o processo que possui o arquivo de bloqueio (se vazio, suponha que o bloqueio sobrou de uma inicialização anterior e pode sersudo rm
d) e considere fazer umsudo kill -9 <PID>
(obter <PID> dalsof
saída.root <pid> <ppid> 0 15:58 ? 00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held install
executada por um processo como o que parece executar a atualização adequada toda vez que ligo a máquina. Dependendo do tamanho da atualização (que geralmente corresponde a há quanto tempo desde que eu usei essa máquina pela última vez), isso pode ser de 1 a 10 minutos para ser concluído. Depois disso, o bloqueio é liberado para instalações e atualizações manuais do apt. Tente:sudo ps aux|grep apt
ou `sudo ps aux | grep sem supervisão.Respostas:
Isso deve ser usado como último recurso. Se você usar isso descuidadamente, poderá acabar com um sistema danificado. Por favor, tente as outras respostas primeiro antes de fazer isso.
Você pode excluir o arquivo de bloqueio com o seguinte comando:
Você também pode precisar excluir o arquivo de bloqueio no diretório de cache
Depois disso, tente abrir o Synaptic novamente.
fonte
Vejo praticamente todas as respostas recomendando excluir o bloqueio. Eu não recomendo fazer isso como uma primeira medida; talvez se não houver alternativa. O bloqueio é colocado quando um processo apt está em execução e é removido quando o processo é concluído. Se houver um bloqueio sem processo aparente em execução, isso pode significar que o processo ficou travado por algum motivo.
Se você tentar
ou
que capturará processos que contenham a palavra
apt
, pelo menos. Se você vir umapt-get
processo ou umaptitude
processo que parece travado, tentee se isso não funcionar tente
Isso deve interromper o processo e pode remover a trava. Matar
apt
ouaptitude
processar é inofensivo, a menos que esteja realmente no meio da instalação do pacote. De qualquer forma, se o processo ficou emperrado, você provavelmente não tem outra opção a não ser matá-lo.Matar um
dpkg
processo diretamente, se presente, não é uma boa idéia, porque sedpkg
estiver ativo, provavelmente está manipulando o banco de dados do pacote e matá-lo pode deixar o banco de dados do pacote em um estado inconsistente; ie corrompido.Matar
apt-get
ouaptitude
processar é geralmente muito mais seguro.fonte
dpkg
é uma boa idéia, porque geralmentedpkg
está manipulando o banco de dados de pacotes diretamente, e isso pode causar corrupção.dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
ao executarsudo apt-get dist-upgrade
novamente. A execução do comando resolveu o problema. Eu amo Nix!killall apt-get
faz o mesmo que seups
/kill
combo.sudo dkpg --configure -a
depois de matar o processo desonesto do apt para que as coisas voltassem ao normal.Remova seu
/var/lib/dpkg/lock
arquivo e force a reconfiguração do pacote.Deve funcionar depois disso.
fonte
sudo
- execute o comando como root,rm
- remova o arquivo. Talvez tentesudo rm /var/cache/apt/archives/lock
Você receberá esta mensagem se esquecer de usar
sudo
ao executar um comando apt.Caso contrário, isso é um sinal de que outra coisa está instalando ou removendo software e bloqueou o banco de dados apt enquanto ele executa as ações. Os programas que podem fazer isso são:
IMPORTANTE: tente apenas o abaixo como último recurso, pois ele pode travar o sistema. Primeiro tente matar qualquer instância em execução
apt
ouaptitude
como descrito na resposta de Faheem .Você pode forçar o bloqueio removendo o arquivo, mas isso não é recomendado sem primeiro fechar o programa que está mantendo o bloqueio com segurança , pois você pode causar corrupção ou interromper uma instalação (incorreta). O comando fornecido por João deve fechar o programa que contém a trava e removê-la, mas não o protegerá da interrupção da instalação:
E o mesmo comando pode ser usado para o bloqueio de cache do apt:
fonte
sudo fuser -cuk /var/cache/apt/archives/lock
diretamente reiniciado meu computador.apt-get
agora está desbloqueado.A maneira mais provável de atingir isso é:
sudo apt-get install whatever
e a linha de comando se
apt
sobrepõe àupdate-manager
pesquisa automática.Portanto, se você tentar novamente em alguns minutos, isso deve ser corrigido.
fonte
sudo apt-get install
pudesse funcionar.Apenas um programa pode segurar a trava. Certifique-se de que você não está executando aptitude, sináptico ou adepto. Feche o programa e execute-o novamente, pois deve funcionar. Você pode ter o synaptic aberto, ou outra janela do terminal aberta, executando o apt-get, ou o gerenciador de atualizações em execução. eles está sendo executado perto e tente novamente.
Tente este comando no terminal para encontrar o que está sendo executado
Nota:
Se isso não imprimir nada, digite o seguinte no terminal para remover a trava
Agora você pode instalar quaisquer pacotes.
fonte
pgrep -f 'apt|adept|dpkg'
é muito mais curto.pgrep -a 'apt|adept|dpkg'
é um equivalente melhor mais curto.Até agora, a melhor maneira de fazê-lo funcionar sem interromper uma possível instalação em execução em segundo plano (como poderia acontecer removendo o arquivo de bloqueio), é parar o serviço usando o apt:
Erro:
Solução:
Após a atualização do sistema, sugiro reativá-lo, pois o bloqueio do bug pode ser corrigido com a atualização.
sudo systemctl start apt-daily.timer
Não verifiquei que este erro foi corrigido após a atualização. Adicionarei um novo comentário assim que confirmar
fonte
Antes de tudo, devemos verificar qual processo criou o arquivo de bloqueio usando
lsof
:ou em outra situação em que
/var/lib/apt/lists/lock
é problemático:A saída será próxima a algo como:
Então, devemos verificar o que o commad está fazendo, podemos encontrá-lo usando
ps
,pgrep
etc; o comando éapt-get
assim que eu corro:O
-a
switch lista o comando completo para mim, no meu caso é:podemos ver que ele está executando o
update
subcomando, eu também poderia executar algo assim:que produz:
Neste caso, eu iria esperar por alguns minutos para recurso a ser libertado e se depois o problema 2 ou 3 minutos ainda existe ou o comando era algo que eu não me importava com ou não foi prejudicial para o sistema (como este
apt-get update
) eu envio umSIGTERM
para o processo:Deveria fazer o trabalho. Caso contrário, vou enviar
SIGINT
desta vez (é como pressionar CTRL+ C):Se não funcionou também, devemos enviar um
SIGHUP
(kill -1
) e, finalmente, se nada funcionar, simplesmente mato o processo:ou
Em seguida, removo os recursos ocupados:
fonte
/var/lib/dpkg/lock
vez de/var/lib/apt/lists/lock
o arquivo da questão.pgrep
epkill
.dpkg --configure -a
pode ser necessáriaEsse erro pode ser causado pelo Update Manager tentar atualizar automaticamente a lista de pacotes em segundo plano, geralmente logo após o seu login, bloqueando o diretório.
Nesse caso, aguarde alguns segundos (ou mais, se sua última atualização foi há muito tempo) para que ela seja concluída ou inicie o Update Manager para verificar o status.
fonte
ps
algumas vezes, vi quedpkg
estava atualizando uma grande quantidade de coisas e esperei pacientemente que tudo terminasse. . Em seguida, executei o Software Updater até que tudo estivesse atualizado antes de tentar instalar algo novo.Isso acontecerá se você tiver o 'Gerenciador de Atualizações' em execução paralelamente para qualquer verificação de atualização ou instalação, pois o processo de instalação coloca o Bloqueio. Se você está enfrentando o mesmo erro sem o 'Update Manager' em execução, é necessário removê-lo
/var/lib/dgkg/lock
, o que definitivamente não pode ser feito manualmentefunciona bem. Retirado de: https://askubuntu.com/a/15469/68707
fonte
Não seja tão rápido em remover algo, isso pode danificar totalmente o seu sistema; em vez disso, aguarde até o programa de instalação ou desinstalação atualmente concluir sua tarefa e depois disso você terá acesso. Se você acha que não há nada a instalar ou desinstalar, em seguida, basta reiniciar o sistema com o comando
sudo reboot
.fonte
Se você tiver atualizações de segurança definidas para instalação automática, isso acontecerá com freqüência. Eu literalmente espero 30 segundos e isso resolve o problema. Apenas lançando isso lá fora, no caso de mais alguém encontrar esse problema.
fonte
No meu caso, tive que esperar vários minutos para que o bloqueio fosse liberado (parece
apt
usado para segurá-lo). Tudo isso aconteceu logo após a inicialização do sistema.fonte
Apenas
sudo rm -f /var/lib/apt/lists/lock
e tente novamente.apt-fast pode ser responsável por não desbloquear corretamente; isso acontece às vezes quando você aborta
apt-get
oudpkg
também.fonte
Eu já tive esse problema várias vezes. Para mim, era quase sempre causado pelo apt-get ou por alguma GUI que o chamava de travado por algum motivo. Eu tive que matá-lo, o que deixou várias fechaduras no lugar.
As outras respostas trazem pontos muito bons sobre garantir que nenhuma atualização esteja sendo executada no momento antes de fazer algo drástico como remover arquivos de bloqueio. No entanto, quando você tiver certeza de que não é esse o caso, o seguinte geralmente funciona para mim. Eu entendi lendo muitas respostas para perguntas como esta.
Enquanto a maioria ou tudo isso é apresentado nas outras respostas, isso destila a correção em alguns comandos.
Use para desbloquear o sistema de pacotes após uma atualização de algum tipo travar ou terminar sem terminar de outra maneira. Esses comandos devem ser executados na ordem apresentada.
fonte
Não vejo essa resposta em nenhum lugar acima, mas no Ubuntu 16.04, também encontrei esse problema. A causa foi a hora em que o meu computador foi definido no futuro . (Isso ocorre porque eu estou em um sistema de inicialização dupla do Windows + Ubuntu e acho que atrapalhei a hora local versus a hora UTC.)
Uma coisa estranha é que a data e a hora do arquivo bloqueado eram a data e a hora exata em que eu executei o programa.
Eu então usei o "fusor" como descrito em postagens anteriores e o apt funcionou, mas estava recebendo reclamações sobre a necessidade de executar
dpkg -a -reconfigure
. Quando fiz isso, obtive erros como:em arquivos como '/ var / lib / dpkg / updates / 0003'.
Tudo isso foi muito estranho, como eu nunca vi antes. Então, pensei que estes eram sintomas e alterei meus dados e hora manualmente. Eu sabia que havia um problema com a data / hora em que entrei, mas estava ignorando. (Anteriormente, ele era definido automaticamente via Internet e NTP).
Então, todos os problemas acima foram corrigidos ... Felizmente, isso ajuda alguém! O sintoma mais notável é talvez a data / hora do arquivo de bloqueio, sendo a data / hora exata em que você está tentando executar o comando.
fonte
No meu caso, o X travou enquanto
apt-get
ainda estava removendo os kernels antigos. Usei o System Monitor para confirmar que ele ainda estava em execução e não estava travado. Tudo estava bem quando o processo terminou.fonte
Verifique o Iniciador para ver se
Software Updater
está em execução. Se assim for, maximize-o e veja o que está fazendo. Se ainda estiver checando, aguarde a conclusão. Quando concluído, pode ser informado que o software está atualizado, portanto feche o aplicativo. Se houver atualizações disponíveis, faça a atualização ou clique em "lembrar mais tarde". Após este aplicativo ser fechado, você poderá voltar a usarapt-get
ouapt
.Se
Software Updater
não estiver em execução, use o Dash para invocá-lo e aguardar a conclusão e, em seguida, decida se deseja atualizar ou clique em "lembrar-me mais tarde". Após este aplicativo ser fechado, você poderá voltar a usarapt-get
ouapt
.fonte
No meu caso, eu estava recebendo a mesma mensagem por não perceber que havia mudado para o usuário root e estava tentando o sudo apt-get. Depois que percebi isso, executei o apt-get e funcionou. Bobo, mas ainda pode explicar o erro para alguns.
fonte
sudo
como root (e mesmo que não pudesse, não produziria essa mensagem de erro). Provavelmente, o que aconteceu foi que o outro processo foi concluído enquanto você escrevia o próximo comando.Use por sua conta e risco
fonte
no meu caso, depois de:
Eu digitei
então eu tenho esses problemas Corrigi isso, executando o comando que me foi mostrado após executarsudo apt update
Este comando mostrará uma lista de programas no meu caso, apenas o Firefox; fechei o Firefox e, em seguida, executei o comando novamente sem problemas.
fonte
Para pessoas interessadas em evitar proativamente esse bug em seus scripts, descobri que o sinalizador -q
apt upgrade -yq
estava causando esse problema para mim. Durante o processo de atualização, acho que ocasionalmente me dava avisos (algo como atualizar a área de trabalho, eu gostaria de continuar) e, se esses avisos foram suprimidos, acho que isso faz com que o apt não desbloqueie os arquivos que estava protegendo e ficou preso.É certo que tive problemas para reproduzir esse erro 100% das vezes, mas a eliminação da opção -q resolveu completamente o problema para mim .
fonte
Como quase todo mundo, esperei que a trava fosse removida. Depois de 30 minutos, desisti e iniciei o disco com uma distribuição diferente. De lá, usei a internet para algumas pesquisas que me levaram até aqui.
Acontece que
unattended-upgrades.service
está em execução. Eu achei que estava reiniciando no sistema quebrado e executando:permitiu que o sistema quebrado funcionasse novamente para:
No entanto, não corrigiu os pacotes ocultos e a situação impossível relatada
apt
em primeiro lugar. Parece que isso estava causando oapt
travamento na inicialização, em primeiro lugar.fonte