Моно порушено після спроби оновлення, не вдається використати apt


10

Я працював mono-completeі mono-develвстановлював на своєму Ubuntu Server 18.10 вже кілька місяців, щоб запустити деякі програми, які від цього залежать. Я використовую Mono 5.18.0.225. До того, як щось було порушено, я зробив стандарт sudo apt update, побачив у списку багато моно пакетів для оновлення, потім зробив a sudo apt upgrade. Він проходив звичайно для більшості встановлення, і тоді термінал продовжував виплювати помилки та помилки та помилки. Майже нескінченні помилки будуть надруковані знову і знову на кілька секунд, незалежно від того, що я намагався зробити:

  • оновлення sudo apt
  • sudo apt - встановлена ​​помилка
  • sudo apt видалити моно-повний моно-devel
  • sudo apt autoremove

Не здається оновити чи видалити. Якщо оновлення неможливо, я б спробував видалити та спробувати перевстановити, але й видалення не вдалося.

У помилці він згадує, що не в змозі знайти gdb або lldb. Потім я спробував вручну зробити та встановити gdb, тому що я не можу використовувати apt ... намагаючись це зробити, я попрошу вас запустити, sudo apt --fix-broken installякий випльовує ті самі помилки. Установка gdb-8.2 успішна. Надруковані помилки незначно змінюються і містять посилання на gdb (тому що зараз він встановлений), але все ще ніде не потрапили.

  • Як в першу чергу вирвався моно?
  • Чому намагаються видалити пакунки, що створюють помилки?
  • Який найкращий спосіб дій для виправлення цієї ситуації? Я б не потребував перевстановлення сервера Ubuntu і налаштування резервного копіювання.

Що виводиться з помилки (перед встановленням 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, щоб знову запустити додатки, які залежать від нього.

  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 removeоскільки він говорить, що dpkg був перерваний, і я повинен виконувати вручну 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після цього оновлення, оновлення та будь-які виправлення в стилі '- виправлена ​​помилка встановлення' та 'autoremove' очистили решту. Остаточний рахунок: $ mono --version Mono JIT компілятор версія 6.0.0.319 (tarball пт 9 серпня 16:23:57 UTC 2019) ....
user309383

1

Гаразд, якщо ви достатньо відчайдушні, щоб спробувати що-небудь, просто соромтесь того, що здається, на жаль, занадто поширеною резолюцією - витерти жорсткий диск і перевстановити ОС з нуля ...

Мені якось вдалося виправити свій корабель. Я не впевнений, як, і я не впевнений, чому, але це кілька останніх речей, які я намагався, і чомусь дав позитивний результат:

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 для видалення моно-розробки. Він був позначений як не встановлений (див. Вище), але пропонував ПОЛЬНО видалити. Вибрали те і застосували. Це призвело до завантаження судна вже знайомих помилок dpkg і не вдалося.

Я спробував використовувати його, щоб видалити моно-час виконання-звичайний, і він також створив завантаження вже знайомих помилок dpkg і не вдалося.

Потім я побіг,

sudo apt-get purge mono-gac
і чомусь ЦИЙ час це якось почалось, сорта 'спрацювало. Він видалив приклад речі, але помилився на навантаженні прикладу. Так, принаймні, це деякий прогрес.

sudo apt-get update update
sudo apt-get upgrade
тепер показав лише три пункти, які я раніше не міг оновити, оскільки Mono впав. Зараз я зміг успішно їх модернізувати.

Потім я слідував інструкціям щодо встановлення Mono для ubuntu 18.04 за адресою https://www.mono-project.com/download/stable/#download-lin
Однак на кроці 2 замість установки моно-розробки я встановив моноповне

Він встановлений без помилок і попередньо склав деякі речі. Після перезавантаження 2 з моїх 3 Mono-додатків було завантажено та запущено. Третій, що я просто повинен був зробити перевстановлення на місці, і він також повернувся після перезавантаження.

Я щиро сподіваюсь, що вам вдасться отримати допомогу з вищезгаданих дурниць, і ось вам інакше щасливі свята, чудовий новий рік та інші подібні речі. :)


Результати apt policy mono-complete mono-develпоказують, що я встановив 18.04, а моно працює 18.04, тому я підозрюю, що в питанні є питання управління пакетом. Моноповні та монорозроблені пакети все ще доступні у сховищах за замовчуванням для 18.10 та 19.04.
Карел

Дякую за відповідь, але я не впевнений, чи зможу я спробувати будь-яку з цих пропозицій після того, що я спробував минулої ночі. Зауважу, що коли я спочатку бігав sudo apt remove mono-complete mono-develі sudo apt autoremove, деякі пакети було видалено, перш ніж помилки почали випливати. Минулої ночі я побіг sudo apt remove mono-gac mono-runtime-commonі більше пакетів ми видаляємо, перш ніж помилки виплюнулися. Потім, напрочуд, коли я бігав sudo apt autoremoveпісля цього, помилок не було, решту пакунків було видалено, і я думаю, що моно було успішно і повністю видалено.
Меттью Райт

Однак переустановка моно - наступний крок, і я сподіваюся, що це пройде гладко, так що я можу знову запустити ці програми.
Меттью Райт

Я не впевнений, що причиною цього є один або декілька пакунків, але все, що було видалено до того, як помилки почали виплювати другий, apt removeповинні вирішити проблему. Було б зручно дізнатися, який пакет (и) був конкретною причиною, щоб знову його виправити в майбутньому. Однак я не знаю, наскільки легко цю проблему можна відтворити.
Меттью Райт

Так, повторна установка моно пройшла успішно, і мої програми знову працюють нормально!
Меттью Райт

0

У мене був такий самий випуск на моїй коробці з монетним двотомником Linux 18.3. Довелося використовувати часовий зсув для перевстановлення системи. Все, що я зробив до цього часу, - це видалити моно-ppa з сховища, і поки я можу оновити / оновити пакети. Я чекаю, коли нова монофіксація знову активує сховище. Я знаю, що це не виправлення проблеми, але, принаймні, це спосіб подолати проблему, яка чекає справжніх вун, щоб розібратися.


Дякуємо за відповідь! Я раніше не чув і не користувався часовим переключенням, але погляну. Я думаю, що я зміг успішно видалити моно зі своєї системи минулої ночі. Це інструмент, про який ми звертаємось? . Це версія сервера, хоча це лише командний рядок. Я не відразу бачу, що ви можете використовувати його через CLI.
Меттью Райт

0

У мене була схожа проблема. У моєму випадку монорозробка залежала від монорослини, а чомусь монорослина залежить від монорозвину. Тож видалення пакетів самостійно не спрацювало. Але це:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.