web-dev-qa-db-ja.com

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

Ubuntu Server 18.10にmono-completeおよびmono-develをインストールして、それに依存するいくつかのアプリケーションを実行するために、ここ2か月間しました。 Mono 5.18.0.225を使用しています。物事が壊れる前に、標準のSudo apt updateを実行し、リスト内の多くのモノパッケージをアップグレードするのを見た後、Sudo apt upgradeを実行しました。ほとんどのインストールで正常に実行され、その後、端末はエラーとエラーおよびエラーを吐き出し続けました。私がやろうとしたことに関係なく、ほとんど無限のエラーが数秒間繰り返し出力されます:

  • Sudo aptのアップグレード
  • Sudo apt --fix-broken install
  • Sudo apt remove mono-complete mono-devel
  • Sudo apt autoremove

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

エラーでは、gdbまたはlldbが見つからないことが記載されています。次に、 手動でgdbを作成してインストール を使用しようとしましたが、apt ...を使用できないため、同じエラーが発生する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
9
Matthew Wright

この順序でこれらのコマンドが毎回問題を解決するかどうかは100%確かではありませんが、これが起こったことであり、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を再インストールします。
6
Matthew Wright

さて、残念ながらあまりにも一般的な解決策であると思われることを恥ずかしがり屋にしようとするなら、ハードドライブを拭いて、最初から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エラーが大量に発生して失敗しました。

それから走りました

須藤apt-getパージmono-gac
そしてなんらかの理由で、今回はちょっと '、ちょっと'が働きました。それは、大量の物をアンインストールしましたが、大量の物でエラーが発生しました。ええ、少なくともある程度進歩しました。

須藤apt-getアップデート
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番目は、インプレース再インストールを実行する必要があり、再起動後にも再インストールされました。

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

1
gorT

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

0
Emilio

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

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

0
msangel