Mono rusak setelah upaya meningkatkan, tidak dapat menggunakan apt

10

Saya telah mono-completedan mono-develmenginstal pada Ubuntu Server 18.10 saya selama beberapa bulan sekarang untuk menjalankan beberapa aplikasi yang bergantung padanya. Saya menggunakan Mono 5.18.0.225. Sebelum hal-hal melanggar, saya melakukan standar sudo apt update, melihat banyak paket mono dalam daftar untuk memutakhirkan, kemudian melakukan a sudo apt upgrade. Itu berjalan normal untuk sebagian besar instalasi dan kemudian terminal terus meludahkan kesalahan dan kesalahan dan kesalahan. Kesalahan yang hampir tak ada habisnya akan dicetak berulang-ulang selama beberapa detik terlepas dari apa yang saya coba lakukan:

  • sudo apt upgrade
  • sudo apt - instal rusak diperbaiki
  • sudo apt menghapus mono-complete mono-devel
  • sudo apt autoremove

Tampaknya tidak dapat memutakhirkan atau menghapus. Jika upgrade tidak mungkin, saya sudah mencoba untuk menghapus dan mencoba menginstal ulang tetapi gagal juga gagal.

Dalam kesalahan itu disebutkan tidak dapat menemukan gdb atau lldb. Saya kemudian mencoba untuk membuat dan menginstal gdb secara manual karena saya tidak dapat menggunakan apt ... mencoba melakukannya akan meminta Anda untuk menjalankan sudo apt --fix-broken installyang mengeluarkan kesalahan yang sama. Instalasi gdb-8.2 berhasil. Kesalahan yang dicetak sedikit berubah dan berisi referensi ke gdb (karena sekarang sudah diinstal) tetapi masih belum ada.

  • Bagaimana mono bisa pecah?
  • Mengapa mencoba menghapus paket yang menghasilkan kesalahan?
  • Apa tindakan terbaik untuk memperbaiki situasi ini? Saya lebih suka tidak menginstal ulang Server Ubuntu dan mengatur semuanya kembali.

Untuk apa yang dicetak dalam kesalahan (sebelum gdb instal):

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
sumber

Jawaban:

6

Saya tidak 100% yakin bahwa perintah-perintah ini dalam urutan ini akan menyelesaikan masalah setiap kali, tetapi inilah yang terjadi dan saya berhasil menginstal ulang Mono untuk mendapatkan aplikasi yang bergantung padanya agar berjalan kembali.

  1. sudo apt remove mono-complete mono-devel

    • Beberapa paket harus dihapus (sekitar ~ 15-25%) sebelum kesalahan mulai meludah dan Anda tidak dapat menjalankan ini lagi.
  2. sudo apt autoremove

    • Beberapa paket harus dihapus sebelum kesalahan mulai meludah dan Anda tidak dapat menjalankan ini lagi.
  3. sudo apt remove mono-gac mono-runtime-common
    • Beberapa paket harus dihapus sebelum kesalahan mulai meludah dan Anda tidak dapat menjalankan ini lagi.
  4. sudo apt autoremove
    • Paket Mono lainnya harus dihapus sepenuhnya saat ini tanpa kesalahan.
    • Harus ada paket tertentu yang menjadi penyebab kesalahan pada perintah sebelumnya dan ketika itu dihapus, kesalahan berhenti terjadi dan sisanya dapat dihapus tanpa masalah.
  5. Instal ulang Mono.
Matthew Wright
sumber
1
Tetapi saya tidak dapat menjalankannya apt removekarena dikatakan dpkg terputus dan saya harus menjalankannya secara manual sudo dpkg --configure -a, tetapi perintah ini hanya menyebabkan kesalahan di atas.
Aaron Franke
penting bagi saya (pada 18.04.1-Ubuntu) adalah sudo dpkg --force-all -P ca-certificates-monodan karena sudo apt --fix-broken installtidak ada resep 'memperbaiki' tidak bekerja saya menghapus semuanya mono di atas mode. Dalam hal-hal tertentu seperti sudo dpkg --force-all -P mono-common mono-develdan sudo dpkg --force-all -P mono-4.0-gac mono-gacsetelah pembaruan itu, pemutakhiran, dan perbaikan apa pun dalam gaya '- install-broken install' dan 'autoremove' membersihkan sisanya. Skor akhir: $ mono --versi Mono JIT compiler versi 6.0.0.319 (tarball Fri 9 Agustus 16:23:57 UTC 2019) ....
user309383
1

Oke, jika Anda cukup putus asa untuk mencoba sesuatu yang sedikit dari apa yang tampaknya, sayangnya, resolusi yang terlalu umum - menghapus hard drive dan menginstal ulang OS dari awal ...

Saya entah bagaimana berhasil memperbaiki kapal saya. Saya tidak yakin bagaimana dan saya tidak yakin mengapa, tetapi ini adalah beberapa hal terakhir yang saya coba yang karena beberapa alasan menghasilkan hasil yang positif:

sudo dpkg --remove --force-remove-reinstreq mono-complete
Dengan cepat kembali ke command prompt tanpa pesan. Apakah itu benar-benar melakukan sesuatu? Siapa tahu. ¯ \ _ (ツ) _ / ¯

sudo dpkg --remove --force-remove-reinstreq mono-devel
Dengan cepat kembali ke command prompt tanpa pesan. Apakah itu benar-benar melakukan sesuatu? Siapa tahu. ¯ \ _ (ツ) _ / ¯

sudo dpkg --hapus --force-remove-reinstreq mono-gac
Dikatakan tidak bisa menghapusnya karena ketergantungan

sudo dpkg --remove --force-remove-reinstreq mono-runtime-common
Dikatakan tidak bisa menghapusnya karena ketergantungan

Untuk omong kosong dan cekikikan saya kemudian mencoba menggunakan Synaptic Package Manager untuk menghapus mono-devel. Itu ditandai sebagai tidak diinstal (lihat di atas) tetapi menawarkan penghapusan COMPLETE. Dipilih itu dan diterapkan. Ini menghasilkan banyak kesalahan dpkg yang sekarang sudah dikenal dan gagal.

Saya mencoba menggunakannya untuk menghapus mono-runtime-common dan juga menghasilkan buttload kesalahan dpkg yang sekarang sudah dikenal dan gagal.

Saya kemudian berlari,

sudo apt-get purge mono-gac
dan untuk beberapa alasan kali ini agak ', agak' berhasil. Itu menghapus buttload barang, tetapi kesalahan pada stuffload buttload. Yay, setidaknya itu membuat BEBERAPA kemajuan.

sudo apt-get update
sudo apt-get upgrade
sekarang hanya menunjukkan tiga item yang sebelumnya saya tidak dapat upgrade karena Mono telah meledak. Saya sekarang berhasil memutakhirkannya.

Saya kemudian mengikuti petunjuk pemasangan Mono untuk ubuntu 18.04 di https://www.mono-project.com/download/stable/#download-lin
Namun, pada Langkah 2, alih-alih menginstal mono-devel saya menginstal mono-selesai

Itu diinstal tanpa kesalahan dan mengkompilasi beberapa hal. Setelah reboot 2 dari 3 aplikasi berbasis Mono saya kembali dan berjalan. Yang ketiga saya hanya harus melakukan instal ulang di tempat dan juga kembali setelah reboot.

Saya sungguh berharap Anda bisa mendapatkan bantuan dari omong kosong di atas dan ini untuk liburan yang bahagia, tahun baru yang hebat dan hal-hal lain semacam itu. :)

gorT
sumber
Hasil apt policy mono-complete mono-develmenunjukkan bahwa saya telah menginstal pada 18.04 dan mono bekerja pada 18.04, jadi saya curiga ada masalah manajemen paket dalam pertanyaan. paket mono-complete dan mono-devel masih tersedia di repositori default untuk 18.10 dan 19.04.
karel
Terima kasih atas tanggapannya tetapi saya tidak yakin apakah saya dapat mencoba semua saran ini setelah apa yang saya coba tadi malam. Saya akan perhatikan bahwa ketika saya awalnya berlari sudo apt remove mono-complete mono-develdan sudo apt autoremove, beberapa paket telah dihapus sebelum kesalahan mulai meludahkan. Tadi malam saya berlari sudo apt remove mono-gac mono-runtime-commondan lebih banyak paket kami dihapus sebelum kesalahan meludahkan. Kemudian, ternyata, ketika saya berlari sudo apt autoremovesetelah itu tidak ada kesalahan, sisa paket dihapus, dan saya pikir mono berhasil dan sepenuhnya dihapus.
Matthew Wright
Namun, menginstal ulang mono adalah langkah berikutnya dan saya harap ini berjalan dengan lancar sehingga saya bisa menjalankan aplikasi itu lagi.
Matthew Wright
Saya tidak yakin apakah itu satu atau beberapa paket yang menjadi penyebabnya, tetapi apa pun yang dihapus sebelum kesalahan mulai meludah pada paket kedua apt removeharus memperbaiki masalahnya. Akan berguna untuk mengetahui paket apa yang menjadi penyebab spesifik untuk memperbaikinya lagi di masa mendatang. Namun, saya tidak tahu betapa mudahnya masalah ini dapat direproduksi.
Matthew Wright
Yup, instalasi ulang mono berhasil dan aplikasi saya berjalan normal lagi!
Matthew Wright
0

Saya memiliki masalah yang sama pada kotak mint linux saya 18,3 Sylvia. Harus menggunakan timeshift untuk menginstal ulang sistem. Yang saya lakukan sejauh ini adalah menghapus mono ppa dari repositori dan, untuk saat ini, saya dapat memperbarui / meningkatkan paket. Saya menunggu perbaikan mono baru untuk mengaktifkan kembali repositori. Saya tahu ini bukan perbaikan untuk masalah ini, tetapi, setidaknya, ini adalah cara untuk mengatasi masalah menunggu geek nyata untuk menyelesaikannya.

Emilio
sumber
Terima kasih atas tanggapannya! Saya belum pernah mendengar atau menggunakan timeshift sebelumnya tetapi saya akan memeriksanya. Saya pikir saya berhasil mencopot pemasangan mono dari sistem saya tadi malam. Apakah ini alat yang Anda maksud? . Ini adalah versi server, jadi hanya baris perintah. Saya tidak segera melihat bahwa Anda dapat menggunakannya melalui CLI.
Matthew Wright
0

Saya punya masalah serupa. Dalam kasus saya, mono-devel bergantung pada mono-roslyn dan untuk beberapa alasan mono-roslyn bergantung pada mono-devel. Jadi, menghapus paket secara mandiri tidak berhasil. Tetapi ini dilakukan:

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

msangel
sumber