![CLI 라이브러리 패키지를 제거할 수 없습니다.](https://linux55.com/image/109268/CLI%20%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%20%ED%8C%A8%ED%82%A4%EC%A7%80%EB%A5%BC%20%EC%A0%9C%EA%B1%B0%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
일부 패키지를 설치 중인데 패키지 중 하나를 설치하는 동안 시스템이 중단되고 패키지가 설치되지 않습니다. 그러나 패키지가 설치된 패키지 목록에 추가되었습니다. 그래서 시스템을 재부팅하고 다음을 시도했습니다.
패키지를 제거하려고 하면 구성 파일을 찾을 수 없기 때문에 작동하지 않습니다.
패키지를 설치하려고 하면 패키지가 이미 설치되어 있다고 표시되어 설치가 되지 않습니다.
업데이트하려고 하면 패키지를 제거하려고 시도하고 위의 오류가 발생합니다.
그래서 제 질문은 설치된 패키지 목록에서 패키지를 수동으로 제거할 수 있는 방법이 있는지, 아니면 이 문제를 해결할 수 있는 다른 방법이 있는지 묻는 것입니다.
내가 실행할 때 :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.