업그레이드 시도 후 모노가 깨져 apt를 사용할 수 없음


10

나는 있었다 mono-completemono-devel에 의존 일부 응용 프로그램을 실행하는 데 지금은 몇 달 동안 내 우분투 서버 18.10에 설치되어 있어야합니다. Mono 5.18.0.225를 사용하고 있습니다. 문제가 발생하기 전에 표준 sudo apt update을 수행하고 목록에서 많은 모노 패키지를 업그레이드하여 보았다 sudo apt upgrade. 대부분의 설치에서 정상적으로 진행된 다음 터미널에서 오류와 오류 및 오류가 계속 발생했습니다. 거의 끝없는 오류는 내가 시도한 것에 관계없이 몇 초 동안 반복적으로 인쇄됩니다.

  • sudo apt 업그레이드
  • sudo apt --fix-broken 설치
  • sudo apt 제거 mono-complete mono-devel
  • sudo apt 자동 제거

업그레이드하거나 제거 할 수 없습니다. 업그레이드가 불가능한 경우 제거하고 다시 설치하려고 시도했지만 제거도 실패했습니다.

오류에서 gdb 또는 lldb를 찾을 수 없다는 언급입니다. 그런 다음 apt를 사용할 수 없기 때문에 수동으로 gdb를 만들고 설치 하려고 시도했습니다 ... 그렇게 sudo apt --fix-broken install하면 동일한 오류가있는 spit 을 실행하라는 메시지 가 표시됩니다. gdb-8.2 설치가 완료되었습니다. 인쇄 된 오류는 약간 변경되어 gdb (지금 설치되어 있기 때문에)에 대한 참조가 포함되어 있지만 여전히 아무 것도 얻지 못했습니다.

  • 모노는 처음에 어떻게 깨졌습니까?
  • 오류가 발생하는 패키지를 제거하려고하는 이유는 무엇입니까?
  • 이 상황을 해결하기위한 최선의 조치는 무엇입니까? 차라리 우분투 서버를 다시 설치하고 모든 것을 다시 설정할 필요가 없습니다.

오류 (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

나는이 순서 대로이 명령이 매번 문제를 해결할 것이라고 확신하지는 않지만 이것이 일어난 일이며 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
    • 이번에 나머지 모노 패키지는 오류가 발생하지 않고 완전히 제거되어야합니다.
    • 이전 명령에서 오류의 원인이되는 특정 패키지가 있어야하며 제거 될 때 오류가 발생하지 않고 나머지는 문제없이 제거 할 수 있습니다.
  5. 모노를 다시 설치하십시오.

1
그러나 apt removedpkg가 중단되어 수동으로 실행해야하므로 실행할 수 sudo dpkg --configure -a없지만이 명령은 위의 오류를 발생시킵니다.
Aaron Franke

(에 18.04.1 - 우분투) 나에게 매우 중요했다 sudo dpkg --force-all -P ca-certificates-mono이후 sudo apt --fix-broken install도 다른 '수정'조리법은 위의 방식으로 난을 제거 모든 모노 작동하지 않았다. 특히 같은 것들에서 sudo dpkg --force-all -P mono-common mono-develsudo dpkg --force-all -P mono-4.0-gac mono-gac그 업데이트, 업그레이드 후, 나머지를 청소 어떤 스타일에 고정 '설치 --fix 깨진'와 'autoremove'. 최종 점수 : $ mono --version Mono JIT 컴파일러 버전 6.0.0.319 (tarball 금 8 월 9 일 16:23:57 UTC 2019) ....
user309383

1

좋아, 슬프게도 너무 일반적인 해결책 인 것처럼 부끄러워하는 것을 시도하기에 필사적이라면 하드 드라이브를 지우고 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 오류의 buttload를 생성하고 실패했습니다.

나는 달렸다

sudo apt-get purge mono-gac
그리고 어떤 이유로 든 이번에는 다소 작동했습니다. 그것은 buttload of stuff를 제거했지만 butt의 buttload에서 오류가 발생했습니다. 예, 적어도 그것은 일종의 진보를 이루었습니다.

sudo apt-get update
sudo apt-get upgrade
는 Mono가 내포되어 있기 때문에 이전에 업그레이드 할 수 없었던 세 가지 항목 만 표시했습니다. 이제 성공적으로 업그레이드 할 수있었습니다.

그런 다음 https://www.mono-project.com/download/stable/#download-lin 에서 우분투 18.04의 모노 설치 지침을 따랐습니다.
그러나 2 단계 에서 모노 데블 을 설치하는 대신 모노 완료를 설치했습니다.

오류없이 설치되고 일부 내용을 미리 컴파일했습니다. 재부팅 후 내 3 개의 모노 기반 앱 중 2 개가 백업되어 실행되었습니다. 세 번째는 방금 제자리에 다시 설치해야했으며 재부팅 후에도 다시 나타납니다.

나는 당신이 위의 말도 안되는 부분에서 도움을 얻을 수 있기를 진심으로 바랍니다. 그렇지 않으면 행복한 휴일, 새해 복 많이 받으세요. :)


apt policy mono-complete mono-devel18.04에 모노와 18.04에 모노가 모두 설치되어 있음 을 보여준 결과 , 패키지 관리 문제가 의심됩니다. mono-complete 및 mono-devel 패키지는 18.10 및 19.04의 기본 리포지토리에서 계속 사용할 수 있습니다.
karel

답장을 보내 주셔서 감사하지만 지난 밤에 시도한 후에 이러한 제안을 시도 할 수 있는지 확실하지 않습니다. 내가 처음 실행할 때주의 것이다 sudo apt remove mono-complete mono-develsudo apt autoremove오류를 뱉어 시작하기 전에, 일부 패키지가 제거되었다. 어젯밤에 sudo apt remove mono-gac mono-runtime-common오류가 발생하기 전에 더 많은 패키지를 실행 했습니다. 그런 다음 놀랍게도 sudo apt autoremove나중에 실행했을 때 오류가 없었고 나머지 패키지가 제거되었으며 mono가 성공적으로 완전히 제거되었다고 생각합니다.
Matthew Wright

그러나 모노를 다시 설치하는 것이 다음 단계이며 원활하게 진행되어 해당 응용 프로그램을 다시 실행할 수 있기를 바랍니다.
Matthew Wright

그것이 하나 또는 여러 개의 패키지인지 확실하지 않지만 두 번째로 시작하기 전에 오류가 발생하기 전에 제거 apt remove된 것은 문제를 해결해야합니다. 나중에 다시 고쳐야 할 특정한 원인이 무엇인지 아는 것이 도움이 될 것입니다. 그러나이 문제를 얼마나 쉽게 재현 할 수 있는지 모르겠습니다.
Matthew Wright

예, 모노를 다시 설치하고 내 응용 프로그램이 정상적으로 다시 실행 중입니다!
Matthew Wright

0

내 리눅스 민트 박스 18.3 실비아에서도 같은 문제가있었습니다. 시스템을 다시 설치하기 위해 타임 시프트를 사용해야했습니다. 내가 지금까지 한 일은 저장소에서 모노 ppa를 제거하는 것이며, 당분간 패키지를 업데이트 / 업그레이드 할 수 있습니다. 새로운 모노 픽스가 리포지토리를 다시 활성화 할 때까지 기다립니다. 나는 그것이 문제에 대한 해결책이 아니라는 것을 알고 있지만 적어도 실제 괴짜가 그것을 분류하기를 기다리는 문제를 극복하는 방법입니다.


답변 주셔서 감사합니다! 전에는 타임 시프트에 대해 들어 본 적이 없거나 사용하지 않았지만 살펴 보겠습니다. 지난 밤에 시스템에서 모노를 성공적으로 제거 할 수 있다고 생각합니다. 이것이 우리가 말하는 도구입니까? . 명령 행 전용이지만 서버 버전입니다. CLI를 통해 사용할 수 있다는 것을 즉시 알 수는 없습니다.
Matthew Wright

0

나는 비슷한 문제가 있었다. 필자의 경우 mono-devel은 mono-roslyn에 의존하고 어떤 이유로 mono-roslyn은 mono-devel에 의존합니다. 따라서 패키지를 독립적으로 제거하지 못했습니다. 그러나 이것은 :

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.