CLI 라이브러리 패키지를 제거할 수 없습니다.

CLI 라이브러리 패키지를 제거할 수 없습니다.

일부 패키지를 설치 중인데 패키지 중 하나를 설치하는 동안 시스템이 중단되고 패키지가 설치되지 않습니다. 그러나 패키지가 설치된 패키지 목록에 추가되었습니다. 그래서 시스템을 재부팅하고 다음을 시도했습니다.

  • 패키지를 제거하려고 하면 구성 파일을 찾을 수 없기 때문에 작동하지 않습니다.

  • 패키지를 설치하려고 하면 패키지가 이미 설치되어 있다고 표시되어 설치가 되지 않습니다.

  • 업데이트하려고 하면 패키지를 제거하려고 시도하고 위의 오류가 발생합니다.

그래서 제 질문은 설치된 패키지 목록에서 패키지를 수동으로 제거할 수 있는 방법이 있는지, 아니면 이 문제를 해결할 수 있는 다른 방법이 있는지 묻는 것입니다.

내가 실행할 때 :sudo apt-get upgrade

오류는 다음과 같습니다

Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be REMOVED:
  libglade2.0-cil libglib2.0-cil libgtk2.0-cil
0 upgraded, 0 newly installed, 3 to remove and 0 not upgraded.
18 not fully installed or removed.
After this operation, 2,819 kB disk space will be freed.
Do you want to continue? [Y/n] Y
(Reading database ... 119043 files and directories currently installed.)
Removing libglade2.0-cil (2.12.26-0xamarin1) ...
E: File does not exist: /usr/share/cli-common/packages.d/policy.2.8.glade-sharp.installcligac
dpkg: error processing package libglade2.0-cil (--remove):
 subprocess installed post-removal script returned error exit status 1
Removing libgtk2.0-cil (2.12.26-0xamarin1) ...
E: File does not exist: /usr/share/cli-common/packages.d/policy.2.6.gtk-dotnet.installcligac
dpkg: error processing package libgtk2.0-cil (--remove):
 subprocess installed post-removal script returned error exit status 1
Removing libglib2.0-cil (2.12.26-0xamarin1) ...
E: File does not exist: /usr/share/cli-common/packages.d/policy.2.6.glib-sharp.installcligac
dpkg: error processing package libglib2.0-cil (--remove):
 subprocess installed post-removal script returned error exit status 1
Errors were encountered while processing:
 libglade2.0-cil
 libgtk2.0-cil
 libglib2.0-cil
E: Sub-process /usr/bin/dpkg returned an error code (1)

답변1

시도해 볼 수 있는 방법에는 여러 가지가 있습니다.

첫 번째는 /usr/share/cli-common/policy-remove정책이 존재하지 않을 때 실패하지 않도록 수정한 것입니다. .that rm -f대신 실행되도록 마지막 줄을 편집하세요.rm~해야 한다패키지를 올바르게 제거할 수 있습니다.

실패하면 모든 Mono 패키지를 제거하려고 하므로 실패한 스크립트를 제거해도 안전할 것입니다 postrm.

sudo rm /var/lib/dpkg/info/lib{glade,glib,gtk}2.0-cil.postrm

스크립트가 수행하는 유일한 작업 postrm은 정책 등록을 취소하는 것뿐입니다. 어차피 모든 항목이 삭제되므로 신경 쓰지 않아도 됩니다.

이 문제로 고통받는 사람은 당신뿐만이 아닙니다. 2012년에 다음과 같은 보고가 있었습니다.데비안 버그 692962.

관련 정보