¿Por qué este error sobre upstart/systemd con runit?

¿Por qué este error sobre upstart/systemd con runit?

Ejecuto sudo apt-get install git-allUbuntu 16.04 y veo lo siguiente al 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)

También recibo el error después de reiniciar mi sistema. Realmente bloquea todo mi sistema. Corro killall update-notifier. Lo ejecuto sudo apt-get install git-allpero me sale el mismo mensaje de error. Corro pgrep -a aptpero no obtengo nada como resultado. Corro pgrep -a updatepero no obtengo nada como resultado. Un informe de error sobre el caso.aquí.

  • En Grub, eligeOpciones avanzadas>Ubuntu (advenedizo) kernel de Linux 4.22. Haciendo lo mismo solo en la terminal sinsistemadprovoca el mismo error.

¿Por qué aparece este error aquí con runit?

Respuesta1

Gerrit Pape, que mantiene los paquetes runit de xyr y daemontools de Bernstein para Debian, es uno de los pocos desarrolladores que se tomó muy en serio la idea de la "neutralidad del sistema init" (de la que se habló mucho después del systemd de Debian) y ha Se esforzó por apoyar la ejecución de estos en van Smoorenburg init, advenedizo y systemd.

El script de mantenimiento posterior a la instalación para runit lo encontrará descomprimido en su sistema desde el paquete en algún lugar como /var/lib/dpkg/info/runit.postinst. Como puede ver, intenta detectar la presencia de advenedizo e iniciar el runsvdirtrabajo de advenedizo si está presente. Hace lo mismo con systemd y runit.service.

Desafortunadamente, en Ubuntu 14 y posterioresambossistemadyadvenedizo están instalados. Y entonces, el script de mantenimiento posterior a la instalación del paquete intenta ejecutar el trabajo de inicio con startel comando de inicio. Por supuesto, advenedizo no es (de forma predeterminada) el administrador de servicios de todo el sistema en Ubuntu 15 y posteriores, y el comando advenedizo startno funciona.

La siguiente es una idea aproximada de cómo parchear el script para solucionar este problema:


si prueba -r /usr/share/debconf/confmodule; entonces
  . /usr/share/debconf/confmodule
  db_purge
fi

si prueba -d /run/systemd/system; entonces
  systemctl inicia runit.service
prueba elif -x /sbin/start; entonces
  /sbin/start ejecutavdir
fi

Esto no es lo ideal, pero es un comienzo. runit.prermy runit.postrmtambién requieren algunos ajustes.

Otras lecturas

Respuesta2

Logré encontrar una solución temporal al problema. Cambie la ubicación de los servidores de origen, etc. del servidor principal a Finlandia o Estonia. Resuelve el problema agudo por un tiempo.

información relacionada