アップグレードの試行後にモノが壊れ、aptを使用できない


10

私が持っていたmono-completeし、mono-develそれに依存するいくつかのアプリケーションを実行するために、今数ヶ月のために私のUbuntu Serverの18.10にインストールされています。Mono 5.18.0.225を使用しています。物事が壊れる前に、私は標準を実行sudo apt updateし、リスト内のアップグレードする多くのモノパッケージを確認してから、を実行しましたsudo apt upgrade。ほとんどのインストールで正常に動作し、その後、ターミナルはエラーやエラーを繰り返し吐き続けました。ほとんど無限のエラーは、私が何をしようとしたかに関係なく、数秒間何度も繰り返し出力されます。

  • sudo apt upgrade
  • sudo apt --fix-broken install
  • sudo apt remove mono-complete mono-devel
  • sudo apt autoremove

アップグレードまたは削除できないようです。アップグレードが不可能な場合、私は削除して再インストールを試みましたが、削除も失敗しました。

エラーでは、gdbまたはlldbが見つからないことを示しています。次に、aptを使用できないため、gdb手動で作成してインストールしようとしました。そうしようとするとsudo apt --fix-broken install、同じエラーを吐き出す実行を要求されます。gdb-8.2のインストールは成功しました。出力されたエラーはわずかに変更され、gdbへの参照が含まれています(現在はインストールされているため)。

  • そもそもモノはどうやって壊れたの?
  • パッケージを削除しようとするとエラーが発生するのはなぜですか?
  • この状況を修正するための最善の方法は何ですか?Ubuntu Serverを再インストールしてすべてをバックアップする必要はありません。

エラーで出力されているもの(gdbのインストール前):

Aborted (core dumped)
E: installing Assembly /usr/share/cli-common/policies.d/libgtk2.0-cil/policy.2.8.gtk-sharp.dll failed
E: Installation of policy.2.8.gtk-sharp with /usr/share/cli-common/runtimes.d/mono failed
* Installing 1 assembly from policy.2.8.pango-sharp into Mono
Stacktrace:

/proc/self/maps:
41308000-41338000 rwxp 00000000 00:00 0
55b153398000-55b1537e1000 r-xp 00000000 08:02 3159129                    /usr/bin/mono-sgen

... cutting some of this out ...

7fb557c3b000-7fb557c88000 r--p 00000000 08:02 3160431                    /usr/lib/mono/gac/Mono.Security/4.0.0.0__0738eb9f132ed756/Mono.Security.dll
Memory around native instruction pointer (0x7fb5556e2c8f):
0x7fb5556e2c7f  20 48 09 d6 41 0f b6 53 05 48 c1 e2 28 48 09 f2   H..A..S.H..(H..
0x7fb5556e2c8f  66 41 0f 38 32 4b 06 66 0f 6f 05 b2 82 49 00 66  fA.82K.f.o...I.f
0x7fb5556e2c9f  0f 38 00 c8 66 48 0f 7e c8 66 48 0f 3a 16 ce 01  .8..fH.~.fH.:...
0x7fb5556e2caf  48 09 c6 48 09 d6 41 0f b6 c2 41 0f b6 53 09 48  H..H..A...A..S.H

Native stacktrace:

    /usr/bin/mono(+0x129f8d) [0x55b1534c1f8d]
    /usr/bin/mono(+0x12a295) [0x55b1534c2295]
    /usr/bin/mono(+0xbfd2f) [0x55b153457d2f]
    /usr/bin/mono(+0x414e8) [0x55b1533d94e8]
    /lib/x86_64-linux-gnu/libpthread.so.0(+0x12dd0) [0x7fb558343dd0]
    /usr/lib/mono/aot-cache/amd64/mscorlib.dll.so(+0x123c8f) [0x7fb5556e2c8f]

Waiting for dumping threads to resume


Debug info from gdb:

mono_gdb_render_native_backtraces not supported on this platform, unable to find gdb or lldb

=================================================================
Got a SIGILL while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

Aborted (core dumped)
E: installing Assembly /usr/share/cli-common/policies.d/libgtk2.0-cil/policy.2.8.pango-sharp.dll failed
E: Installation of policy.2.8.pango-sharp with /usr/share/cli-common/runtimes.d/mono failed
^[[1mdpkg:^[[0m error processing package mono-gac (--configure):
installed mono-gac package post-installation script subprocess returned error exit status 29

回答:


6

これらのコマンドがこの順序で毎回問題を解決するかどうかは100%確実ではありませんが、これが起こったことであり、Monoを正常に再インストールして、Monoに依存するアプリケーションを再度実行することができました。

  1. sudo apt remove mono-complete mono-devel

    • 一部のパッケージは、エラーが発生し始める前に削除する必要があり(約15〜25%になる)、これを再度実行することはできません。
  2. sudo apt autoremove

    • 一部のパッケージは、エラーが発生し始める前に削除する必要があり、これを再度実行することはできません。
  3. sudo apt remove mono-gac mono-runtime-common
    • 一部のパッケージは、エラーが発生し始める前に削除する必要があり、これを再度実行することはできません。
  4. sudo apt autoremove
    • 残りのMonoパッケージは、エラーが発生することなく、今回は完全に削除されるはずです。
    • 前のコマンドのエラーの原因となっている特定のパッケージが必要です。パッケージを削除すると、エラーが発生しなくなり、残りは問題なく削除できます。
  5. Monoを再インストールします。

1
しかし、apt removedpkgが中断され、手動で実行する必要があると表示されているため、実行できませんsudo dpkg --configure -aが、このコマンドは上記のエラーを引き起こすだけです。
アーロンフランケ

(18.04.1-Ubuntuの上で)私にとって非常に重要だったsudo dpkg --force-all -P ca-certificates-monoと以来sudo apt --fix-broken installたり、他の「修正」のレシピは、私が上記の方法で、すべてのモノを削除動作しませんでした。特定のようなものでsudo dpkg --force-all -P mono-common mono-develかつsudo dpkg --force-all -P mono-4.0-gac mono-gacその更新は、アップグレードした後、残りをきれいに任意のスタイルで固定「インストール--fix-壊れた」と「自動的削除」。最終スコア:$ mono --version Mono JITコンパイラバージョン6.0.0.319(tarball Fri Aug 9 16:23:57 UTC 2019)....
user309383

1

さて、悲しいことに、あまりにも一般的な解決策であると思われるものに恥ずかしがり屋で何かを試すのに十分なほど必死である場合、ハードドライブをワイプしてOSを最初から再インストールします...

なんとか船を修理できた。私はどのようにして、なぜなのか定かではありませんが、これが私が試した最後のいくつかのことで、何らかの理由で肯定的な結果が得られました。

sudo dpkg --remove --force-remove-reinstreq mono-complete
メッセージなしですぐにコマンドプロンプトに戻りました。実際に何かしましたか?知るか。¯\ _(ツ)_ /¯

sudo dpkg --remove --force-remove-reinstreq mono-devel
メッセージなしですぐにコマンドプロンプトに戻りました。実際に何かしましたか?知るか。¯\ _(ツ)_ /¯

sudo dpkg --remove --force-remove-reinstreq mono-gac
依存関係があるため削除できなかった

sudo dpkg --remove --force-remove-reinstreq mono-runtime-common
依存関係があるため削除できなかった

たわごととくすくす笑いについては、Synaptic Package Managerを使用してmono-develを削除してみました。インストールされていない(上記を参照)とマークされていましたが、完全に削除されました。それを選択して適用しました。使い慣れたdpkgエラーが大量に発生して失敗しました。

私はそれを使用してmono-runtime-commonを削除しようとしましたが、これもまた、使い慣れたdpkgエラーのバットロードを生成して失敗しました。

次に走った

sudo apt-get purge mono-gac
と何らかの理由で、今回はちょっと、うまくいく。バットロードをアンインストールしましたが、バットロードでエラーが発生しました。ええ、少なくともそれはある種の進歩を遂げました。

sudo apt-get update
sudo apt-get upgrade
は、Monoが爆破したために以前はアップグレードできなかった3つの項目のみを表示するようになりました。私はそれらを正常にアップグレードすることができました。

次に、https://www.mono-project.com/download/stable/#download-linでubuntu 18.04のMonoインストール手順に従いましたが、
手順2では、mono-develをインストールする代わりに、mono-completeをインストールしました

エラーなしでインストールされ、いくつかのものをプリコンパイルしました。再起動後、3つのMonoベースのアプリのうち2つがバックアップされて実行されていました。3つ目は、インプレース再インストールを実行するだけで、再起動後にも戻ってきました。

上記のナンセンスからいくつかの助けを集めることができることを心から願っています。それ以外の場合は、幸せな休日、素晴らしい新年、およびその他のものです。:)


結果はapt policy mono-complete mono-devel、18.04に両方をインストールし、monoが18.04で動作していることを示しているため、質問にはパッケージ管理の問題があると思われます。mono-completeおよびmono-develパッケージは、18.10および19.04のデフォルトリポジトリで引き続き利用できます。
karel

お返事ありがとうございます。昨夜試した後でこれらの提案を試すことができるかどうかはわかりません。私はもともと実行したときにことに注意しましょうsudo apt remove mono-complete mono-develsudo apt autoremoveのエラーが出て吐き始めた前に、いくつかのパッケージが削除されていました。昨夜実行しましたがsudo apt remove mono-gac mono-runtime-common、エラーが発生する前に削除されたパッケージが増えました。その後、驚いたことに、sudo apt autoremove後で実行したときにエラーが発生しなかったため、残りのパッケージは削除され、monoは正常に完全にアンインストールされたと思います。
マシューライト

ただし、monoの再インストールは次のステップであり、それらのアプリケーションを再度実行できるようにスムーズに進むことを願っています。
マシューライト

原因が1つまたは複数のパッケージかどうかはわかりませんが、エラーが2番目に吐き出す前に削除されたものはすべてapt remove問題を修正したに違いありません。将来再び修正する特定の原因がどのパッケージであるかを知ることは便利です。ただし、この問題がどれほど簡単に再現可能かはわかりません。
マシューライト

うん、モノの再インストールは成功し、私のアプリケーションは再び正常に実行されています!
マシューライト

0

Linux Mint Box 18.3 Sylviaでも同じ問題が発生しました。タイムシフトを使用してシステムを再インストールする必要がありました。これまでに行ったのは、リポジトリからmono ppaを削除することだけです。当面は、パッケージを更新またはアップグレードできます。新しいモノの修正がリポジトリを再びアクティブにするのを待ちます。私はそれが問題の修正ではないことを知っていますが、少なくとも、それは本物のマニアがそれを整理するのを待っている問題を克服する方法です。


ご返信ありがとうございます!以前は聞いたことがないか、タイムシフトを使用していませんでしたが、見てみましょう。昨夜、システムからモノを正常にアンインストールできたと思います。これは私たちが言及しているツールですか?。それはサーバーバージョンですが、コマンドラインのみです。CLIから使用できることはすぐにはわかりません。
マシューライト

0

同様の問題がありました。私の場合、mono-develはmono-roslynに依存しており、何らかの理由でmono-roslynはmono-develに依存しています。そのため、パッケージを個別に削除しても機能しませんでした。しかし、これは行います:

sudo dpkg --remove --force-remove-reinstreq mono-roslyn mono-devel

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.