いくつかのパッケージをインストールしていたのですが、あるパッケージのインストール中にシステムがハングし、パッケージがインストールされませんでした。しかし、パッケージはインストール済みパッケージのリストに追加されました。そこで、システムを再起動して、次の操作を試しました。
パッケージを削除しようとすると、設定ファイルが見つからないため機能しません。
パッケージをインストールしようとすると、パッケージがすでにインストールされているためインストールできないと表示されます。
更新しようとすると、パッケージを削除しようとし、上記のエラーが発生します。
そこで質問なのですが、インストール済みパッケージのリストからパッケージを手動で削除する方法があるのでしょうか、それともこの問題を解決する別の方法があるのでしょうか?
実行すると: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
試すことができるアプローチがいくつかあります。
1つ目は、/usr/share/cli-common/policy-remove
ポリシーが存在しない場合に失敗しないように修正することです。最後の行を編集して、rm -f
の代わりにが実行されるようにするrm
。すべきパッケージを正しく削除できるようにします。
それが失敗した場合、すべての Mono パッケージを削除しようとしているので、失敗したスクリプトを削除しても安全ですpostrm
。
sudo rm /var/lib/dpkg/info/lib{glade,glib,gtk}2.0-cil.postrm
スクリプトが実行する唯一の操作postrm
はポリシーの登録解除ですが、いずれにしてもすべてを削除するので、これは気にする必要はありません。
この問題に悩まされているのはあなただけではありません。2012年に次のように報告されました。Debian バグ 692962。