GNU/Linux >> Linux Esercitazione >  >> Linux

Questo errore su Upstart/systemd con Runit?

Eseguo sudo apt-get install git-all in Ubuntu 16.04 e alla fine vedi quanto segue

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)

Ricevo l'errore anche dopo aver riavviato il mio sistema. Blocca davvero tutto il mio sistema.
Eseguo killall update-notifier . Eseguo sudo apt-get install git-all ma
ricevo lo stesso messaggio di errore. Eseguo pgrep -a apt ma non ottieni nulla come output. Eseguo pgrep -a update ma non ottieni nulla come output.
Qui una segnalazione di bug sul caso.

  • In Grub, scegli Opzioni avanzate> Ubuntu (Upstart) kernel Linux 4.22 . Fare lo stesso solo nel terminale senza systemd provoca lo stesso errore.

Perché questo errore è qui con runit?

Risposta accettata:

Gerrit Pape, che mantiene sia xyr runit che i pacchetti daemontools di Bernstein per Debian, è uno dei pochi sviluppatori che ha preso davvero a cuore l'idea della "neutralità del sistema init" (che era molto sbandierata dopo il sistema Debian hoo-hah) e si è sforzato di supportare l'esecuzione di questi sotto van Smoorenburg init , upstart e systemd.

Lo script del manutentore post-installazione per runit lo troverai decompresso sul tuo sistema dal pacchetto da qualche parte come /var/lib/dpkg/info/runit.postinst . Come puoi vedere, prova a rilevare la presenza di upstart e ad avviare runsvdir upstart se è presente upstart. Fa lo stesso con systemd e runit.service .

Sfortunatamente, su Ubuntu 14 e versioni successive entrambi systemd e upstart sono installati. E quindi lo script di manutenzione post-installazione per il pacchetto sta cercando di eseguire il lavoro upstart con start di upstart comando. Ovviamente, upstart non è (per impostazione predefinita) il gestore dei servizi a livello di sistema in Ubuntu 15 e versioni successive, e start di upstart il comando non funziona.

Quella che segue è un'idea approssimativa di come correggere lo script per ovviare a questo problema:

…
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

Questo non è l'ideale, ma è un inizio. runit.prerm e runit.postrm richiedono anche alcuni aggiustamenti.

Correlati:Bash converte \xC3\x89 in É?

Ulteriori letture

  • Jonathan de Boyne Pollard (2015). /etc/inittab appartiene al passato. . Risposte frequenti.
  • Jonathan de Boyne Pollard (04-11-2014). esegui . mailing list debian-vote.
  • Nikolay Hristov (21-10-2014). runit:impossibile installare runit dopo una nuova installazione di jessie beta2 . Bug Debian #766187.
  • Andreas Beckmann (03-11-2014). daemontools-run:installazione non riuscita senza /etc/inittab . Bug Debian #767933.
  • runit.postinst . runit sorgente . Launchpad di Ubuntu.
  • https://unix.stackexchange.com/a/196252/5132

Linux
  1. Gestire le risorse con cgroup in systemd

  2. Errore nell'utilizzo di GRANT con IDENTIFIED by password in MySQL

  3. Corruzione dei metadati di LVM VG con "Errore di checksum"

  4. Cosa c'è di vulnerabile in questo codice C?

  5. Systemd con più execStart

Modifica video su Linux con questa app Python

Come eseguire container come servizio Systemd con Podman

Come correggere l'errore di conversione con Calibre

Decluttering la gestione dei processi con ps o systemd

Gestire cgroup con systemd

Ottieni informazioni su un comando con Type Command in Linux