Por que esse erro sobre o upstart / systemd com o runit?

3

Eu corro sudo apt-get install git-all no 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)

Eu recebo o erro depois de reiniciar o meu sistema também. 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 obtenho nada como saída. Eu corro pgrep -a update mas não obtenho nada como saída. Um relatório de bug sobre o caso aqui .

  • No Grub, escolha Opções avançadas > Ubuntu (Upstart) Linux kernel 4.22 . Fazer o mesmo apenas no terminal sem systemd causa o mesmo erro.

Por que esse erro está aqui no runit?

    
por Léo Léopold Hertz 준영 19.05.2016 / 21:38

2 respostas

2

Gerrit Pape , que mantém ambos os pacotes do xir own runit e do daemontools de Bernstein para o Debian, é um dos poucos desenvolvedores que tiraram a idéia de "neutralidade do sistema init" (que foi muito discutido após o Debian systemd hoo-hah) realmente valeu a pena e tem trabalhado duro para suportar a execução destes sob van Smoorenburg init , upstart e systemd.

O script do mantenedor de pós-instalação para o 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 de upstart e iniciar o trabalho de upstart runsvdir se o upstart estiver presente. Ele faz o mesmo com systemd e runit.service .

Infelizmente, no Ubuntu 14 e posterior, ambos systemd e upstart estão instalados. E assim, o script do mantenedor de pós-instalação para o pacote está tentando executar a tarefa inicial com o comando start da upstart. Naturalmente, o upstart não é (por padrão) o gerenciador de serviços de todo o sistema no Ubuntu 15 e posterior, e o comando start do upstart não funciona.

O que se segue é uma ideia aproximada de como corrigir o script para superar isso:

…
if test -r /usr/share/debconf/confmodule; then
  . /usr/share/debconf/confmodule
  db_purge
fi

if test -d /run/systemd/system ; then
  systemctl start runit.service
elif test -x /sbin/start ; then
  /sbin/start runsvdir
fi

Isso não é ideal, mas é um começo. runit.prerm e runit.postrm também exigem alguns ajustes.

Leitura adicional

por 20.05.2016 / 15:14
0

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. Resolve o problema agudo por um tempo.

    
por 03.06.2016 / 20:35