Mono nach Upgrade-Versuch defekt, apt kann nicht verwendet werden

10

Ich habe mono-completeund mono-develinstalliere seit einigen Monaten auf meinem Ubuntu Server 18.10, um einige Anwendungen auszuführen, die davon abhängen. Ich benutze Mono 5.18.0.225. Bevor die Dinge kaputt gingen, habe ich einen Standard erstellt sudo apt update, viele Monopakete in der Liste zum Aktualisieren gesehen und dann einen sudo apt upgrade. Bei den meisten Installationen lief es normal, und dann spuckte das Terminal immer wieder Fehler und Irrtümer aus. Die fast endlosen Fehler wurden einige Sekunden lang immer wieder ausgedruckt, unabhängig davon, was ich versuchte:

  • Sudo Apt Upgrade
  • sudo apt --fix-defekte Installation
  • sudo apt entfernen mono-vollständige mono-devel
  • sudo apt autoremove

Kann nicht aktualisiert oder entfernt werden. Wenn ein Upgrade nicht möglich ist, habe ich versucht, eine Neuinstallation zu entfernen, aber das Entfernen ist ebenfalls fehlgeschlagen.

In dem Fehler wird erwähnt, dass gdb oder lldb nicht gefunden werden können. Ich habe dann versucht, gdb manuell zu erstellen und zu installieren, da ich apt nicht verwenden kann. Wenn Sie dies versuchen, werden Sie aufgefordert, sudo apt --fix-broken installdas Programm auszuführen, das dieselben Fehler ausspuckt. Die Installation von gdb-8.2 ist erfolgreich. Die ausgedruckten Fehler ändern sich geringfügig und enthalten Verweise auf gdb (weil es jetzt installiert ist), sind aber immer noch nirgendwo angekommen.

  • Wie ist Mono überhaupt kaputt gegangen?
  • Warum versucht der Versuch, Pakete zu entfernen, die Fehler verursachen?
  • Was ist die beste Vorgehensweise, um diese Situation zu beheben? Ich möchte Ubuntu Server lieber nicht neu installieren und alles neu einrichten müssen.

Für das, was im Fehler ausgedruckt wird (vor der Installation der 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
Matthew Wright
quelle

Antworten:

6

Ich bin nicht 100% sicher, dass diese Befehle in dieser Reihenfolge das Problem jedes Mal lösen, aber genau das ist passiert, und ich konnte Mono erfolgreich neu installieren, um die davon abhängigen Anwendungen wieder zum Laufen zu bringen.

  1. sudo apt remove mono-complete mono-devel

    • Einige Pakete sollten entfernt werden (erreicht ~ 15-25%), bevor Fehler auftreten und Sie dies nicht erneut ausführen können.
  2. sudo apt autoremove

    • Einige Pakete sollten entfernt werden, bevor Fehler auftreten, und Sie können dies nicht erneut ausführen.
  3. sudo apt remove mono-gac mono-runtime-common
    • Einige Pakete sollten entfernt werden, bevor Fehler auftreten, und Sie können dies nicht erneut ausführen.
  4. sudo apt autoremove
    • Der Rest der Mono-Pakete sollte diesmal vollständig entfernt werden, ohne dass Fehler ausgespuckt werden.
    • Es müssen bestimmte Pakete vorhanden sein, die die Ursache für die Fehler in den vorherigen Befehlen sind. Wenn sie entfernt werden, treten die Fehler nicht mehr auf und der Rest kann ohne Probleme entfernt werden.
  5. Mono neu installieren.
Matthew Wright
quelle
1
Ich kann jedoch nicht ausgeführt werden, apt removeda dpkg unterbrochen wurde und ich manuell ausführen muss sudo dpkg --configure -a, aber dieser Befehl verursacht nur die oben genannten Fehler.
Aaron Franke
Entscheidend für mich (am 18.04.1-Ubuntu) war sudo dpkg --force-all -P ca-certificates-monound da sudo apt --fix-broken installauch keine anderen ' Fix'- Rezepte nicht funktionierten, entfernte ich alles Mono auf die oben beschriebene Weise. Insbesondere Dinge wie sudo dpkg --force-all -P mono-common mono-develund sudo dpkg --force-all -P mono-4.0-gac mono-gacnach diesem Update, Upgrade und alle Korrekturen im Stil "--fix-defekte Installation" und "Autoremove" bereinigten den Rest. Endergebnis: $ mono --version Mono JIT Compiler Version 6.0.0.319 (Tarball Fr 9. August 16:23:57 UTC 2019) ....
user309383
1

Okay, wenn Sie verzweifelt genug sind, etwas zu versuchen, das nur schüchtern ist, was leider eine allzu häufige Lösung zu sein scheint - die Festplatte löschen und das Betriebssystem von Grund auf neu installieren ...

Ich habe es irgendwie geschafft, mein Schiff zu reparieren. Ich bin mir nicht sicher, wie und warum, aber dies sind die letzten Dinge, die ich versucht habe und die aus irgendeinem Grund zu einem positiven Ergebnis geführt haben:

sudo dpkg --remove --force-remove-reinstreq mono-complete
Es kehrte schnell und ohne Meldungen zur Eingabeaufforderung zurück. Hat es tatsächlich etwas getan? Wer weiß. ¯ \ _ (ツ) _ / ¯

sudo dpkg --remove --force-remove-reinstreq mono-devel
Es kehrte schnell zur Eingabeaufforderung ohne Nachrichten zurück. Hat es tatsächlich etwas getan? Wer weiß. ¯ \ _ (ツ) _ / ¯

sudo dpkg --remove --force-remove-reinstreq mono-gac
Es hieß, es könne aufgrund von Abhängigkeiten nicht entfernt werden

sudo dpkg --remove --force-remove-reinstreq mono-runtime-common
Es wurde angegeben, dass es aufgrund von Abhängigkeiten nicht entfernt werden konnte

Für Scheiße und Kichern habe ich dann versucht, mit Synaptic Package Manager Mono-Devel zu entfernen. Es wurde als nicht installiert markiert (siehe oben), bot jedoch die vollständige Entfernung an. Das ausgewählt und angewendet. Es erzeugte eine Schiffsladung von jetzt bekannten dpkg-Fehlern und schlug fehl.

Ich habe versucht, damit Mono-Runtime-Common zu entfernen, und es hat auch eine Menge jetzt bekannter dpkg-Fehler erzeugt und ist fehlgeschlagen.

Ich rannte dann,

sudo apt-get purge mono-gac
und aus irgendeinem Grund hat es DIESES Mal irgendwie funktioniert. Es deinstallierte eine Menge Sachen, machte aber einen Fehler bei einer Menge Sachen. Ja, zumindest hat es einige Fortschritte gemacht.

sudo apt-get update Das
sudo apt-get Upgrade
zeigte jetzt nur drei Elemente an, die ich zuvor nicht aktualisieren konnte, weil Mono implodiert war. Ich konnte sie jetzt erfolgreich aktualisieren.

Ich habe dann die Mono-Installationsanweisungen für Ubuntu 18.04 unter https://www.mono-project.com/download/stable/#download-lin befolgt.
In Schritt 2 habe ich jedoch Mono-Complete installiert, anstatt Mono-Devel zu installieren

Es wurde fehlerfrei installiert und einige Dinge vorkompiliert. Nach einem Neustart waren 2 meiner 3 Mono-basierten Apps wieder betriebsbereit. Das dritte Mal musste ich nur eine Neuinstallation durchführen und es kam auch nach einem Neustart zurück.

Ich hoffe aufrichtig, dass Sie es schaffen, etwas Hilfe aus dem oben genannten Unsinn herauszuholen, und auf ansonsten schöne Feiertage, ein großartiges neues Jahr und andere solche Dinge. :) :)

gorT
quelle
Die Ergebnisse von apt policy mono-complete mono-develzeigen, dass ich sowohl am 18.04 als auch am 18.04 installiert habe und Mono am 18.04 arbeitet. Ich vermute also, dass die Frage ein Problem mit der Paketverwaltung enthält. Mono-Complete- und Mono-Devel-Pakete sind weiterhin in den Standard-Repositorys für 18.10 und 19.04 verfügbar.
Karel
Vielen Dank für die Antwort, aber ich bin mir nicht sicher, ob ich nach dem, was ich letzte Nacht versucht habe, einen dieser Vorschläge ausprobieren kann. Ich werde feststellen, dass bei der ursprünglichen Ausführung von sudo apt remove mono-complete mono-develund sudo apt autoremoveeinige Pakete entfernt wurden, bevor Fehler ausspuckten. Letzte Nacht bin ich gelaufen sudo apt remove mono-gac mono-runtime-commonund mehr Pakete wurden entfernt, bevor Fehler ausgespuckt wurden. Dann, überraschenderweise, als ich sudo apt autoremovedanach lief, gab es keine Fehler, der Rest der Pakete wurde entfernt und ich denke, Mono wurde erfolgreich und vollständig deinstalliert.
Matthew Wright
Die Neuinstallation von Mono ist jedoch der nächste Schritt und ich hoffe, dass es reibungslos verläuft, damit ich diese Anwendungen wieder zum Laufen bringen kann.
Matthew Wright
Ich bin nicht sicher, ob es ein oder mehrere Pakete sind, die die Ursache sind, aber was auch immer entfernt wurde, bevor die Fehler, die beim zweiten ausspucken, apt removedas Problem behoben haben müssen. Es wäre praktisch zu wissen, welche Pakete die spezifische Ursache waren, um das Problem in Zukunft erneut zu beheben. Ich weiß jedoch nicht, wie leicht dieses Problem reproduzierbar ist.
Matthew Wright
Ja, die Neuinstallation von Mono war erfolgreich und meine Anwendungen werden wieder normal ausgeführt!
Matthew Wright
0

Ich hatte das gleiche Problem auf meiner Linux Mint Box 18.3 Sylvia. Musste Timeshift verwenden, um das System neu zu installieren. Alles, was ich bisher getan habe, ist, das Mono-ppa aus dem Repository zu entfernen, und vorerst kann ich die Pakete aktualisieren / aktualisieren. Ich warte auf den neuen Mono-Fix, um das Repository wieder zu aktivieren. Ich weiß, dass es keine Lösung für das Problem ist, aber es ist zumindest eine Möglichkeit, das Problem zu überwinden, das darauf wartet, dass die echten Geeks es lösen.

Emilio
quelle
Danke für die Antwort! Ich hatte noch nie von Timeshift gehört oder es benutzt, aber ich werde es mir ansehen. Ich glaube, ich konnte gestern Abend Mono erfolgreich von meinem System deinstallieren. Ist dies das Werkzeug, auf das wir uns beziehen? . Es ist jedoch die Serverversion, also nur die Befehlszeile. Ich sehe nicht sofort, dass Sie es über CLI verwenden können.
Matthew Wright
0

Ich hatte ein ähnliches Problem. In meinem Fall hing Mono-Entwicklung von Mono-Roslyn ab und aus irgendeinem Grund hängt Mono-Roslyn von Mono-Entwicklung ab. Das Entfernen von Paketen unabhängig voneinander hat also nicht funktioniert. Aber das tun:

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

msangel
quelle