web-dev-qa-db-ja.com

Ubuntu 19.04 aptの壊れた依存関係:モノラル

Ubuntu19.04でaptに問題があります。 aptパッケージをインストールまたはアップグレードしようとするたびに、次のエラーが発生します。

You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 mono-complete : Depends: mono-roslyn (= 6.4.0.198-0xamarin3+ubuntu1804b1) but it is not going to be installed
 mono-devel : Depends: mono-roslyn (= 6.4.0.198-0xamarin3+ubuntu1804b1) but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

Sudo apt -f installを実行すると、次のエラーが発生します。

dpkg: error processing archive /var/cache/apt/archives/mono-roslyn_6.4.0.198-0xamarin3+ubuntu1804b1_all.deb (--unpack):
 trying to overwrite '/usr/bin/csc', which is also in package chicken-bin 4.13.0-1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/mono-roslyn_6.4.0.198-0xamarin3+ubuntu1804b1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

つまり、mono-roslynは、現在chicken-bin(CHICKENスキームコンパイラ)で使用されているcscバイナリを上書きしようとしています。

cscバイナリを/usr/bin/cscから/usr/bin/csc-chickenに移動して、問題が解決するかどうかを確認しました。それはしませんでした、そして私はまだ同じエラーが発生しています。

以前にaptとmonoに関する問題が発生しましたが、Sudo apt autoremoveで修正しましたが、最初に示したものと同じエラーが発生します。

システムに新しいパッケージをアップグレードまたはインストールできるようにするには、この問題を修正する必要があります。ご想像のとおり、これはかなり差し迫った問題です。

数日後、私は解決策に到達しました。 monoを正しくインストールできるように、chicken-binを削除することにしました(理想的ではありませんが、最善のオプションです)。質問で言ったように、apt removeは機能しませんが、dpkgを使用してパッケージを削除できることがわかりました。

次のコマンドで問題が修正されました。

$ Sudo dpkg --remove --force-remove-reinstreq chicken-bin
$ Sudo apt -f install

うまくいけば、他の誰かがこれが役に立つと思うでしょう。