Atualização com falhas - o dpkg trava no 'Started Braille Device Support'

6

Corrigido um upgrade de 14.10- > 15.04- > 15.10 mal. Eu tenho andado por aí no modo de recuperação e tenho certeza de que consegui remover todos os pacotes / dependências quebrados e reinstalá-los, mas agora estou me deparando com esse problema estranho. Aptitude não roda, diz que eu preciso fazer coisas com o dpkg. O dpkg vai fazer coisas, mas sempre fica preso em

Error getting authority: Error initializing authority: Could not connect: No such file or directory (g-io-error-quark, 1)
Error getting authority: Error initializing authority: Could not connect: No such file or directory (g-io-error-quark, 1)
[  OK  ] Started Braille Device Support.

Esse braile tem me incomodado por um tempo, mas finalmente cheguei a um impasse. A primeira parte, com os erros, parece ser um erro obscuro relativo a discos rígidos estragados, e depois de algum log digging, parece que pode me apontar para a partição do Windows neste HD, o que é bom. Isso parece um beco sem saída, e não consigo encontrar mais nada on-line.

Eu realmente gostaria de não ter que fazer backup, reformatar e reinstalar. Alguém tem uma pista?

    
por kikjezrous 09.02.2016 / 17:03

4 respostas

8

Acabei de entrar em uma situação semelhante com uma atualização mal-sucedida e subsequente movimentação no modo de recuperação, em que um determinado subconjunto de pacotes (a saber, apport) estava pendurado em dpkg --configure -a com a mesma mensagem Started Braille Device Support. . O hack que me fez passar por isso foi:

  1. Se você está atualmente olhando para o comando pendurado apt-get , pressione Ctrl + C para parar. Se isso não funcionar (como aconteceu comigo), pressione Ctrl + Z , depois execute kill -9 %1 algumas vezes para eliminá-lo para sempre. Em seguida, execute rm /var/lib/dpkg/lock , já que você assassinou o processo que normalmente faz isso.
  2. Execute screen (para obter mais de um prompt).
  3. Pressione Ctrl + A e depois c para abrir um prompt diferente.
  4. Execute dpkg --configure -a e espere o processo parar.
  5. Pressione Ctrl + A e depois a para voltar ao outro prompt.
  6. Executar killall systemctl
  7. Pressione Ctrl + A e depois a para retornar ao comando dpkg --configure -a .
  8. Observe que o último pacote deve ter terminado de configurar e dpkg foi movido para o próximo pacote e pendurado da mesma forma ou concluído.
  9. Se dpkg estiver interrompendo novamente, vá para a etapa 5.
  10. Quando o dpkg --configure -a for finalmente concluído, continue a copiar no modo de recuperação, possivelmente executando apt-get upgrade até que o sistema pareça estar reinicializado.

Por que isso funcionou (pelo menos para mim), meu processo de depuração foi o seguinte:

  1. apt-get upgrade estava pendurado. Execute a tecla Ctrl + Z e kill -9 %1 acima para voltar ao prompt.
  2. Execute dpkg --configure -a e observe que ele trava com a mesma mensagem Started Braille Device Support. que apt-get upgrade . No entanto, Ctrl + C funciona desta vez para retornar ao prompt.
  3. Pesquise por "suporte ao dispositivo braille iniciado pelo ubuntu". Descubra nesta página de acessibilidade debian que tem a ver com brltty .
  4. Execute apt-get remove brltty , talvez isso afaste o problema.
  5. Execute novamente dpkg --configure -a e observe que ainda está interrompida, mas, desta vez, não há nenhuma mensagem sobre Started Braille Device Support . OK.
  6. Execute strace dpkg --configure -a e observe que o processo está preso em uma chamada wait4(...) para um subprocesso.
  7. Algumas linhas para cima, observe que o processo grava o arquivo /var/lib/dpkg/info/apport.postinst (ou algo similar, IIRC).
  8. less do arquivo acima e veja a tentativa de reiniciar um serviço de inicialização. Suponha que, como estamos no modo de recuperação e o sistema de inicialização não foi executado até a conclusão, isso será estranho.
  9. Execute pstree e veja que dpkg --reconfigure -a de fato bifurcou a bash thing, que então bifurca a perl e, finalmente, systemctl , que não reinicia os serviços de inicialização e pode ficar confuso. / li>
  10. Observe que o script postinst não tem set -e , então talvez possamos eliminar o comando suspenso dentro dele, assim o script de shell termina e dpkg é ativado.
  11. Abra outro aviso de tela, execute killall systemctl , retorne e veja se dpkg realmente foi ativado. Ótimo. Ele está preso no mesmo lugar novamente, em um pacote diferente.
  12. Execute killall systemctl novamente até dpkg sair.
  13. Execute apt-get dist-upgrade novamente e verifique se está tudo atualizado.
  14. Cruze meus dedos e reinicie.

Milagrosamente, o sistema recuperou e até agora não tem problemas.

Portanto, não é uma redução completa (por que o systemctl fica no modo de recuperação?), nem é geralmente aplicável, mas esse hack e o processo para descobri-lo podem ajudar alguém que chega a essa página através de uma pesquisa na web como Eu fiz.

    
por blendmaster 01.05.2016 / 04:25
3

Encontrei esse problema quando tentei atualizar o 15.10 para o 16.04 e corrigi-o usando as etapas abaixo.

  1. Inicialize na linha de comando pressionando E ao realçar a primeira entrada para editá-la.

  2. Cursor até o final da linha linux . Remova quiet splash vt.handoff=7 e adicione single .

  3. Pressione Ctrl + X para inicializar.

  4. Execute screen (para obter mais de um prompt).

  5. Pressione Ctrl + A e depois C para abrir um prompt diferente.

  6. Execute dpkg --configure -a e aguarde até finalizar.

  7. Reinicializar

por vicky 27.06.2016 / 17:57
3

Uma melhoria para as respostas anteriores quando você não pode usar o comando 'screen':

dpkg --configure -a & (sleep 2m; killall systemctl)

Altere o tempo de inatividade para um intervalo de tempo mínimo após o qual você tem certeza de que o dpkg fica preso. (No meu caso eu, na verdade, usei 10s). Trabalhei para mim!

    
por Jameeyo 17.09.2016 / 00:50
1

Eu consegui executar o processo principalmente pressionando Ctrl + Z para pausar o processo atual e enviá-lo para o segundo plano, seguido por

killall systemctl

no shell para finalizar todos os processos systemctl e

fg

para continuar o processo pausado novamente em primeiro plano.

    
por user2574241 11.04.2018 / 11:42