sudo apt-get update retorna um erro [duplicado]

2

Tenho certeza que isso é uma duplicata em algum lugar. Peço desculpas pela repetição. Estou executando o Xubuntu 14.04. Por algum motivo estranho meu pc está lento hoje, então eu pensei que poderia ter algo a ver com o software, então eu fiz uma atualização, e sudo apt-get update retorna um 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?

Eu tentei a resposta dada em o apt-get install não está funcionando porque do dpkg, como resolver e este é o seguinte resultado:

$ sudo lsof /var/lib/dpkg/lock
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
aptitude 2166 root    3uW  REG  252,0        0 49021509 /var/lib/dpkg/lock

$ sudo lsof /var/lib/apt/lists/lock
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.

$ sudo lsof /var/cache/apt/archives/lock
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.

$ sudo dpkg --configure -a
dpkg: error: dpkg status database is locked by another process
  1. Como corrijo isso?
  2. Alguém poderia me acompanhar pelos passos?
  3. Por que eu precisaria de um "bloqueio" em um diretório aberto?
  4. Como descubro qual processo está sendo usado?
  5. Como faço para verificar meu hardware se esse é o culpado?

Vou tentar uma reinicialização e ver se isso conserta alguma coisa. Volto já.

OK, AGORA após a reinicialização, recebo os seguintes resultados: |

$ sudo lsof /var/lib/dpkg/lock
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.

$ sudo lsof /var/lib/apt/lists/lock
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.

$ sudo lsof /var/cache/apt/archives/lock
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
lsof: status error on /var/cache/apt/archives/lock: No such file or directory
lsof 4.86
 latest revision: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/
 latest FAQ: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
 latest man page: ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
 usage: [-?abhKlnNoOPRtUvVX] [+|-c c] [+|-d s] [+D D] [+|-f[gG]] [+|-e s]
 [-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+m [m]] [+|-M] [-o [o]] [-p s]
[+|-r [t]] [-s [p:s]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]
Use the ''-h'' option to get more help information.

Eu também tentei

sudo dpkg --configure -a

que pode ter funcionado porque quando eu fiz

sudo apt-get update

NÃO tenho ERROS.

    
por hienz1 16.09.2016 / 05:58

3 respostas

2

Vou responder às suas perguntas um pouco fora de ordem, porque eu posso.

  

Como faço para verificar meu hardware se esse é o culpado ??

O seu computador está funcionando? Se assim for, o seu hardware não está causando o problema.

  

Por que eu precisaria de um "bloqueio" em um diretório aberto?

O DPKG / Apt bloqueia /var/lib/dpkg para garantir que possa instalar o software em paz, sem causar conflitos ao banco de dados de pacotes instalados (presente em /var/lib/dpkg/status ). É um mecanismo de segurança para evitar que o APT se assopre acidentalmente.

  

Como descubro qual processo está sendo usado?

Você já tem! Veja a saída de: sudo lsof /var/lib/dpkg/lock :

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
aptitude 2166 root    3uW  REG  252,0        0 49021509 /var/lib/dpkg/lock

O programa aptitude (um gerenciador de pacotes bonito) está ativo e é o atual proprietário do bloqueio.

  

Como corrijo isso? Alguém poderia me acompanhar pelos passos?

Existem algumas coisas que você pode fazer.

Primeiro, você pode quebrar o bloqueio executando sudo rm /var/lib/dpkg/lock . Entretanto, é uma boa idéia não quebrar esse bloqueio para forçar a execução de outros processos apt , pois você pode estar interrompendo algo importante, o que pode deixar seu sistema em um estado inutilizável. Só faça isso se você tiver 100% de certeza de que apt ou dpkg não está sendo executado. Você pode verificar isso executando ps -aux | grep dpkg ou ps -aux | grep apt . Se um deles retornar algo diferente de uma linha com grep , não será seguro quebrar o bloqueio.

Em segundo lugar, você pode ir a todos os seus terminais para ver onde o aptitude está sendo executado e para verificar o que está acontecendo. Se você não consegue encontrar o terminal que está ligado, o comando w irá ajudá-lo muito.

Terceiro, você pode simplesmente matar o processo à força, embora isso ainda possa precisar de você para quebrar a fechadura. Faça isso executando sudo kill <PID> , onde <PID> é o número na entrada lsof , no seu caso, 2166 . Não execute kill -9 para o apt, já que ele irá matá-lo com força, enquanto o kill regular dará a chance de limpar tudo antes que ele morra. Você também pode matar o processo reiniciando, efetuando logout ou saindo do terminal em que está sendo executado.

Se você matar com força apt e quebrar o bloqueio, é uma boa ideia executar dpkg --configure -a para permitir que o DPKG corrija o que estava potencialmente quebrado.

    
por Kaz Wolfe 16.09.2016 / 06:45
0
  
  1. Como descubro qual processo está sendo usado?
  2.   
ps -fea | grep apt

Depois de identificar o processo, talvez seja necessário eliminá-lo.

kill -9 nnnn

Em que nnnn é o número do processo.

[Reiniciar o computador também irá matá-lo, mas muitas vezes apenas sair e voltar a trabalhar, dependendo de quem é o proprietário do processo que está causando o problema.]

    
por Juan Antonio 16.09.2016 / 06:19
0
  1. Reinicie seu sistema para garantir que o apt não esteja em execução
  2. Excluir o arquivo de bloqueio ( sudo rm /var/lib/dpkg/lock )

O arquivo de bloqueio impede que várias instâncias do apt sejam executadas de uma só vez

    
por Info-Screen 16.09.2016 / 06:09