Ubuntu 16.04で実行するsudo apt-get install git-all
と、最後に次のようになります
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)
システムの再起動後にもエラーが発生します。システム全体がブロックされてしまいます。 を実行しますkillall update-notifier
。 を実行しますsudo apt-get install git-all
が、同じエラーメッセージが表示されます。 を実行しますpgrep -a apt
が、何も出力されません。 を実行しますpgrep -a update
が、何も出力されません。 このケースに関するバグレポートここ。
- Grubで選択高度なオプション>Ubuntu (Upstart) Linux カーネル 4.22ターミナルでのみ同じことを行うシステム同じエラーが発生します。
runit でこのエラーが発生するのはなぜですか?
答え1
ゲリット・パペxyr 自身の runit と Bernstein の Debian 用 daemontools パッケージの両方を保守している は、「init システム中立性」というアイデア (Debian systemd 騒動の後で盛んに議論された) を真摯に受け止め、これらを van Smoorenburg init
、upstart、systemd で実行できるように懸命に努力した数少ない開発者の 1 人です。
runit のインストール後のメンテナー スクリプトは、 などのパッケージからシステム上に解凍されます/var/lib/dpkg/info/runit.postinst
。ご覧のとおり、このスクリプトは upstart の存在を検出し、runsvdir
upstart が存在する場合は upstart ジョブを開始しようとします。systemd および についても同様ですrunit.service
。
残念ながら、Ubuntu 14以降では両方システムそしてupstart がインストールされています。そのため、パッケージのインストール後のメンテナー スクリプトは、upstart のstart
コマンドを使用して upstart ジョブを実行しようとします。もちろん、upstart は (デフォルトでは) Ubuntu 15 以降のシステム全体のサービス マネージャーではないため、upstart のstart
コマンドは機能しません。
これを克服するためにスクリプトにパッチを適用する方法の大まかな概要は次のとおりです。
… test -r /usr/share/debconf/confmodule; の場合 . /usr/share/debconf/confモジュール db_パージ フィ test -d /run/systemd/system の場合、 systemctl start runit.service elif test -x /sbin/start; 次に /sbin/start はvdirを実行します フィ
これは理想的ではありませんが、始まりに過ぎません。 同様runit.prerm
に、runit.postrm
いくつかの調整も必要です。
参考文献
- ジョナサン・デ・ボイン・ポラード(2015年)。
/etc/inittab
過去のものとなりました。よくある質問。 - ジョナサン・デ・ボイン・ポラード(2014-11-04)。それを実行します. debian-vote メーリングリスト。
- ニコライ・フリストフ(2014-10-21)。runit: jessie beta2 の新規インストール後に runit のインストールに失敗する. Debian バグ #766187。
- アンドレアス・ベックマン(2014-11-03)。daemontools-run: /etc/inittab がないとインストールに失敗する. Debian バグ #767933。
runit.postinst
。 実行ソース. Ubuntu ランチパッド。- https://unix.stackexchange.com/a/196252/5132
答え2
この問題の一時的な解決策を見つけることができました。ソース サーバーなどの場所をメイン サーバーからフィンランドまたはエストニアに変更します。これにより、深刻な問題が一時的に解決されます。