dpkgを介してインストールされた破損した半分のみのパッケージをインストールまたは削除することはできません。

dpkgを介してインストールされた破損した半分のみのパッケージをインストールまたは削除することはできません。

sougoupinyin昨夜、dpkgを介してファイルからパッケージをインストールしましたsougoupinyin.deb。何をすべきかわからなかったいくつかの欠落した依存関係があったことを覚えています。

コンピュータを再起動した後、aptを介していくつかの追加パッケージをインストールしてみました。ただし、次のエラーが発生しました。

littlewhole@pop-os:~$ sudo apt-get install fcitx fcitx-mozc kde-config-fcitx
Reading package lists... Done
Building dependency tree       
Reading state information... Done
fcitx is already the newest version (1:4.2.9.7-3).
kde-config-fcitx is already the newest version (0.5.5-2build1).
The following packages will be REMOVED:
  sogoupinyin
The following NEW packages will be installed:
  fcitx-mozc
0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 247 kB of archives.
After this operation, 57.2 MB disk space will be freed.
Do you want to continue? [Y/n] Y
Get:1 http://us.archive.ubuntu.com/ubuntu focal/universe amd64 fcitx-mozc amd64 2.23.2815.102+dfsg-8ubuntu1 [247 kB]
Fetched 247 kB in 0s (1,190 kB/s)  
(Reading database ... 235083 files and directories currently installed.)
Removing sogoupinyin (2.2.0.0108) ...
/var/lib/dpkg/info/sogoupinyin.postrm: 8: local: debian": bad variable name
dpkg: error processing package sogoupinyin (--remove):
 installed sogoupinyin package post-removal script subprocess returned error exit status 2
dpkg: too many errors, stopping
Errors were encountered while processing:
 sogoupinyin
Processing was halted because there were too many errors.
E: Sub-process /usr/bin/dpkg returned an error code (1)

その後、dpkgを介してパッケージを再インストールしようとしましたが、ほぼ同じエラーが発生しました。

littlewhole@pop-os:~$ sudo dpkg -i '/home/littlewhole/sogoupinyin.deb' 
Selecting previously unselected package sogoupinyin.
(Reading database ... 235083 files and directories currently installed.)
Preparing to unpack .../littlewhole/sogoupinyin.deb ...
Unpacking sogoupinyin (2.2.0.0108) over (2.2.0.0108) ...
/var/lib/dpkg/info/sogoupinyin.postrm: 8: local: debian": bad variable name
dpkg: warning: old sogoupinyin package post-removal script subprocess returned error exit status 2
dpkg: trying script from the new package instead ...
/var/lib/dpkg/tmp.ci/postrm: 8: local: debian": bad variable name
dpkg: error processing archive /home/littlewhole/sogoupinyin.deb (--install):
 new sogoupinyin package post-removal script subprocess returned error exit status 2
/var/lib/dpkg/tmp.ci/postrm: 8: local: debian": bad variable name
dpkg: error while cleaning up:
 new sogoupinyin package post-removal script subprocess returned error exit status 2
Processing triggers for mime-support (3.64ubuntu1) ...
Processing triggers for libglib2.0-0:i386 (2.64.2-1~fakesync1) ...
Processing triggers for libglib2.0-0:amd64 (2.64.2-1~fakesync1) ...
Processing triggers for desktop-file-utils (0.24-1ubuntu3) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for shared-mime-info (1.15-1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Errors were encountered while processing:
 /home/littlewhole/sogoupinyin.deb

その後、dpkgを介してパッケージを削除しようとしましたが、次のエラーが発生しました。

littlewhole@pop-os:~$ sudo dpkg -r sougoupinyin
dpkg: warning: ignoring request to remove sougoupinyin which isn't installed

この時点で私はaskubuntuに行き、他の人が同様の問題を経験していることを確認して解決することにしました。このコマンドを実行すると、問題が解決したことを示す答えが見つかりました。

sudo rm -rf /var/lib/dpkg/info/sougoupinyin.*
sudo rm -rf /usr/share/sougoupinyin
sudo rm -rf /etc/default/sougoupinyin
sudo rm -rf /etc/init.d/sougoupinyin
sudo apt purge sougoupinyin

私はこれを実行することにしました。 rm 操作は正常に完了しましたが、apt purge再びエラーが発生しました。

littlewhole@pop-os:~$ sudo apt purge sougoupinyin
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: The package sogoupinyin needs to be reinstalled, but I can't find an archive for it.

もっと質問と回答を見つけて試してみることにしましたが、sudo apt-get -f install残念ながら別のエラーが発生しました。

littlewhole@pop-os:~$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: The package sogoupinyin needs to be reinstalled, but I can't find an archive for it.

ついに私はそれを試しましたsudo dpkg --remove --force-remove-reinstreq sougoupinyin。ただし、この場合でもエラーが発生します。

littlewhole@pop-os:~$ sudo dpkg --remove --force-remove-reinstreq sougoupinyin
dpkg: warning: ignoring request to remove sougoupinyin which isn't installed

この時点で、私のシステムは「このパッケージがあるので再インストールする必要があります」と「このパッケージはインストールされていません」間の中間状態にあります。 dpkg経由で​​同じ.debを再インストールしようとしましたが、それでもエラーが発生します。

littlewhole@pop-os:~$ sudo dpkg -i '/home/littlewhole/sogoupinyin.deb' 
(Reading database ... 235083 files and directories currently installed.)
Preparing to unpack .../littlewhole/sogoupinyin.deb ...
Unpacking sogoupinyin (2.2.0.0108) over (2.2.0.0108) ...
/var/lib/dpkg/info/sogoupinyin.postrm: 8: local: debian": bad variable name
dpkg: warning: old sogoupinyin package post-removal script subprocess returned error exit status 2
dpkg: trying script from the new package instead ...
/var/lib/dpkg/tmp.ci/postrm: 8: local: debian": bad variable name
dpkg: error processing archive /home/littlewhole/sogoupinyin.deb (--install):
 new sogoupinyin package post-removal script subprocess returned error exit status 2
/var/lib/dpkg/tmp.ci/postrm: 8: local: debian": bad variable name
dpkg: error while cleaning up:
 new sogoupinyin package post-removal script subprocess returned error exit status 2
Processing triggers for mime-support (3.64ubuntu1) ...
Processing triggers for libglib2.0-0:i386 (2.64.2-1~fakesync1) ...
Processing triggers for libglib2.0-0:amd64 (2.64.2-1~fakesync1) ...
Processing triggers for desktop-file-utils (0.24-1ubuntu3) ...
Processing triggers for gnome-menus (3.36.0-1ubuntu1) ...
Processing triggers for shared-mime-info (1.15-1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Errors were encountered while processing:
 /home/littlewhole/sogoupinyin.deb

今、aptこれらのエラーのために邪魔されています。通過できませんapt。これは明らかに問題です。このパッケージを再インストールまたは削除することはできず、機能しませんapt。どうすればいいですか?

ベストアンサー1

メッセージが示すように、/var/lib/dpkg/info/sogoupinyin.postrmポストプログラムを削除する8行目に問題があります。

自分がいる場合は、このファイルをrootとして編集して問題を解決することができます。

それではapt-get remove sogoupinyinうまくいきます。

おすすめ記事