![Ubuntu 19.04 apt сломанная зависимость: mono](https://rvso.com/image/1605182/Ubuntu%2019.04%20apt%20%D1%81%D0%BB%D0%BE%D0%BC%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F%20%D0%B7%D0%B0%D0%B2%D0%B8%D1%81%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C%3A%20mono.png)
У меня проблема с apt на ubuntu 19.04. Каждый раз, когда я пытаюсь установить или обновить пакет apt, появляется следующая ошибка:
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
mono-complete : Depends: mono-roslyn (= 6.4.0.198-0xamarin3+ubuntu1804b1) but it is not going to be installed
mono-devel : Depends: mono-roslyn (= 6.4.0.198-0xamarin3+ubuntu1804b1) but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).
При запуске sudo apt -f install
возникает следующая ошибка:
dpkg: error processing archive /var/cache/apt/archives/mono-roslyn_6.4.0.198-0xamarin3+ubuntu1804b1_all.deb (--unpack):
trying to overwrite '/usr/bin/csc', which is also in package chicken-bin 4.13.0-1
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/mono-roslyn_6.4.0.198-0xamarin3+ubuntu1804b1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Короче говоря: mono-roslyn
пытается перезаписать csc
двоичный файл, который в настоящее время используется chicken-bin
(компилятором схемы CHICKEN).
Я попробовал переместить csc
двоичный файл из в , /usr/bin/csc
чтобы /usr/bin/csc-chicken
проверить, исправит ли это проблему. Это не помогло, и у меня все еще возникает та же ошибка.
У меня уже были проблемы с apt и mono, которые я исправил с помощью sudo apt autoremove
, но при этом возникает та же ошибка, что и первая, показанная здесь.
Мне нужно исправить эту проблему, чтобы иметь возможность обновить или установить новые пакеты в моей системе. Как вы можете себе представить, это довольно срочный вопрос.
решение1
Через несколько дней я пришел к решению. Я решил просто удалить, chicken-bin
чтобы mono мог правильно установиться (не идеальный, но мой лучший вариант). Как я уже сказал в своем вопросе, apt remove
это не сработает, но я понял, что могу удалить пакет с помощью dpkg
.
Следующие команды исправили мою проблему:
$ sudo dpkg --remove --force-remove-reinstreq chicken-bin
$ sudo apt -f install
Надеюсь, кому-то это будет полезно.