Eu instalei recentemente uma nova versão do Ubuntu LTS 12.04. Eu estava usando o LTS 10.4 e salvei meu package.list e estava planejando usar
$> sudo dpkg --set-selections < package.list && apt-get dselect-upgrade
para instalar os mesmos pacotes na nova versão
No entanto, o computador não funciona com o erro
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
As respostas simples para isso seria eu sou root ou um membro do sudo?
$> whoami
surfer
$> groups
surfer adm cdrom sudo dip plugdev lpadmin sambashare
Tanto para a resposta fácil.
Por post semelhante
não é possível bloquear o diretório de administração (/ var / lib / dpkg /) é outro processo que o utiliza?
A solução recomendada é
$> sudo fuser -cuk /var/lib/dpkg/lock; sudo rm -f /var/lib/dpkg/lock
Ao executar esse comando, minha tela fica em branco, o teclado não responde, e minha única opção é pressionar o botão liga / desliga e reiniciar ... (Eu teria pensado que isso era uma sugestão maliciosa, mas muitos outros pareciam ter gostei.)
Eu tentei listar todos os programas que podem estar usando /var/lib/dpkg/lock
$> sudo lsof
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/surfer/.gvfs
Output information may be incomplete.
Note que não há programas listados.
Da mesma forma, sem sorte com
$> ps -e | grep -e apt -e adept | grep -v grep
Nada listado.
BTW, posso executar o apt-get a partir da linha de comando.
$> sudo apt-get update
é executado conforme o esperado e atualiza minhas listas de pacotes ...
@izx:
Depois de tentar sua sugestão, eu não pude correr
$> sudo dpkg --set-selections < package.list && apt-get dselect-upgrade
Ele falhou com o mesmo erro. Eu tentei isso
a) imediatamente após o comando rm no terminal F1
b) executando o comando rm e retornando ao X com Ctrl + Alt + F7
c) executando o comando rm e reinicializando
Apenas de interesse, a opção c) gerou uma mensagem de erro diferente (mas semelhante) que foi
dpkg: error: dpkg status database is locked by another process
Embora eu não possa matar os processos usando /var/lib/dpkg/lock
com fuser
, obtive a seguinte saída para os processos que estão vinculados a ele.
$> fuser -cv /var/lib/dpkg/lock
USER PID ACCESS COMMAND
/var/lib/dpkg/lock: root kernel mount (root)/var
surfer 1641 ....m (surfer)gnome-settings-
surfer 1656 ....m (surfer)compiz
surfer 1679 ....m (surfer)nm-applet
surfer 1688 ....m (surfer)nautilus
surfer 1731 ....m (surfer)gtk-window-deco
surfer 1733 ....m (surfer)unity-panel-ser
surfer 1831 ....m (surfer)gnome-terminal
surfer 1899 f.... (surfer)unity-applicati
surfer 2029 F...m (surfer)update-notifier
Então eu tentei matar cada processo do terminal F1 e removi o arquivo de bloqueio. Sem problemas. O resultado foi
$> fuser -cv /var/lib/dpkg/lock
USER PID ACCESS COMMAND
/var/lib/dpkg/lock: root kernel mount (root)/var
$> ls /var/lib/dpkg/lock
ls: cannot access /var/lib/dpkg/lock: No such file or directory
o arquivo e os links parecem ter desaparecido, mas ao executar o comando dpkg
, recebo o mesmo erro ... e o arquivo de bloqueio está de volta.
Estou muito intrigado e gostaria de receber ajuda.