Por que esse erro sobre upstart/systemd com runit?

Por que esse erro sobre upstart/systemd com runit?

Eu corro sudo apt-get install git-allno Ubuntu 16.04 e vejo o seguinte no final

Setting up runit (2.1.2-3ubuntu1) ...
start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
dpkg: error processing package runit (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of git-daemon-run:
 git-daemon-run depends on runit; however:
  Package runit is not configured yet.

dpkg: error processing package git-daemon-run (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                      Errors were encountered while processing:
 runit
 git-daemon-run
E: Sub-process /usr/bin/dpkg returned an error code (1)

Também recebo o erro após reiniciar meu sistema. Isso realmente bloqueia todo o meu sistema. Eu corro killall update-notifier. Eu corro sudo apt-get install git-all, mas recebo a mesma mensagem de erro. Eu corro pgrep -a apt, mas não recebo nada como saída. Eu corro pgrep -a update, mas não recebo nada como saída. Um relatório de bug sobre o casoaqui.

  • No Grub, escolhaOpções avançadas>Kernel Ubuntu (Upstart) Linux 4.22. Fazendo o mesmo apenas no terminal semsistemacausa o mesmo erro.

Por que esse erro está aqui com o runit?

Responder1

Gerrit Pape, que mantém os pacotes xyr runit e daemontools de Bernstein para Debian, é um dos poucos desenvolvedores que levou a sério a ideia de "neutralidade do sistema init" (que foi muito cogitada depois do Debian systemd hoo-hah) e tem Esforcei-me para apoiar a execução deles sob van Smoorenburg init, upstart e systemd.

O script do mantenedor pós-instalação do runit você encontrará descompactado em seu sistema a partir do pacote em algum lugar como /var/lib/dpkg/info/runit.postinst. Como você pode ver, ele tenta detectar a presença do upstart e iniciar o runsvdirtrabalho do upstart se o upstart estiver presente. Faz o mesmo com systemd e runit.service.

Infelizmente, no Ubuntu 14 e posteriorambossistemaeinicial estão instalados. E assim o script do mantenedor pós-instalação do pacote está tentando executar o trabalho inicial com o startcomando inicial. Obviamente, o upstart não é (por padrão) o gerenciador de serviços de todo o sistema no Ubuntu 15 e posterior, e o startcomando do upstart não funciona.

A seguir está uma ideia aproximada de como corrigir o script para superar isso:


se teste -r /usr/share/debconf/confmodule; então
  . /usr/share/debconf/confmodule
  db_purge
fi

se teste -d /run/systemd/system ; então
  systemctl iniciar runit.service
teste elif -x /sbin/start; então
  /sbin/start executavdir
fi

Isto não é o ideal, mas é um começo. runit.prerme runit.postrmtambém requerem alguns ajustes.

Leitura adicional

Responder2

Consegui encontrar uma solução temporária para o problema. Altere a localização dos servidores de origem, etc., do servidor principal para a Finlândia ou para a Estônia. Isso resolve o problema agudo por um tempo.

informação relacionada