失敗した Debian アップグレードの修正

失敗した Debian アップグレードの修正

Debian 9から10にアップグレードしようとしていますが、インストールしようとするとインストールが失敗しますsystemd-sysv_241-7~deb10u6_amd64.deb。次のエラーが発生します。

実行しようとするとapt --fix-broken install失敗し、以下のエラーが発生しました。

(Reading database ... 59371 files and directories currently installed.)
Preparing to unpack .../systemd-sysv_241-7~deb10u6_amd64.deb ...
Unpacking systemd-sysv (241-7~deb10u6) ...
dpkg: error processing archive /var/cache/apt/archives/systemd-sysv_241-7~deb10u6_amd64.deb (--install):
 trying to overwrite '/usr/share/man/man8/halt.8.gz', which is also in package sysvinit 2.88dsf-41+deb7u1
Processing triggers for man-db (2.7.6.1-2) ...
Errors were encountered while processing:
 /var/cache/apt/archives/systemd-sysv_241-7~deb10u6_amd64.deb

分離しようとしたときに詳細情報表示モードで失敗したコマンドを実行すると、次の結果が表示されます。

# dpkg --debug=77777 -i /var/cache/apt/archives/systemd-sysv_241-7~deb10u6_amd64.deb
...
D000040: ok 2 msgs >><<
D010000: check_triggers_cycle pnow=man-db:amd64
D020000: check_triggers_cycle pnow=man-db:amd64 first
Processing triggers for man-db (2.7.6.1-2) ...
D000002: fork/exec /var/lib/dpkg/info/man-db.postinst ( triggered /usr/share/man )
D000001: ensure_diversions: same, skipping
D020000: post_postinst_tasks - trig_incorporate
Errors were encountered while processing:
 /var/cache/apt/archives/systemd-sysv_241-7~deb10u6_amd64.deb

残念ながら、この「冗談」デバッグは私にとってはとても簡潔で、アップグレード中に詰まっていました。

インストール後、次のようにman-dbを実行してみました。

sh -x /var/lib/dpkg/info/man-db.postinst configure 2.6.7.1-2

エラーなしで正常に完了したので、どのエラーを修正するのかわかりません。

インストールスクリプトがにあることを知っていますが、ls /var/lib/dpkg/infoこのパッケージに関連するスクリプトが何であるかはわかりません。

この問題をより徹底的にデバッグおよび修正するための詳細情報をどこで入手できるかを教えてください。

答え1

現在存在しているよりも関連性の高い情報をどのように取得できるかわかりません。エラーメッセージは次のとおりです。

sysvinit 2.88dsf-41+deb7u1 パッケージにある '/usr/share/man/man8/halt.8.gz' を上書きします。

基本的にそれはすべてです。両方のパッケージが同じファイルをインストールしようとしていますが、Debianはこれを禁止します(単一のファイルが2つの異なる内容を持つことができないため)。

問題のファイルは単にマンページであるため、何もあってはいけません。本物どちらのパッケージが「勝利」しているかに関係なく、問題(システムが起動しないという致命的な問題)。

だから個人的に一つ作ろうか強制壊れたパッケージをインストールします。

# dpkg --force-overwrite -i /var/cache/apt/archives/systemd-sysv_241-7~deb10u6_amd64.deb

その後、アップグレードを再開します。

ただし、--force-***オプションはdpkg一般的に危険と見なされるため、そのオプションの意味を理解していない限り、インターネットからシェルの断片をコピーして盲目的に強制しないでください。

Debian アップグレード

OTOH、Debian は Debian バージョン間のシステムアップグレードを円滑にするために多くの汗や涙を流します(例:9到着10)。それでは、なぜそれがあなたに効果がないのですか?

メジャーバージョン間でアップグレードを使用する必要がありますapt-get dist-upgrade(これによりパーサーが軽減され、アップグレードが単純よりも複雑になる可能性があるためapt-get upgrade)。

また、以前のインストールからジャンクを削除したことを確認する必要があります。たとえば、競合するパッケージにはDebianのものであることを示すsysvinitバージョン番号があります。2.88dsf-41+deb7u17。実際、sysvinitDebian 以降はパッケージがありませんでした。8

したがって、まず実際に実行していることを確認する必要があります。Debian 9システムをアップグレードする前にDebian 10

答え2

使用:

sudo dpkg -i --force-overwrite  /var/cache/apt/archives/systemd-sysv_241-7~deb10u6_amd64.deb

以下は:

sudo apt install -f

関連情報