web-dev-qa-db-ja.com

Ubuntuで壊れたパッケージを削除する

パッケージを削除しようとしたときにエラーが発生したため、壊れた状態のままになりました。私は次を試しました:

Sudo dpkg --remove --force-remove-reinstreq rvm

出力:

(Reading database ... 41743 files and directories currently installed.)
Removing rvm (1.29.3-1) ...
bash: rvm: command not found
dpkg: error processing package rvm (--purge):
 subprocess installed pre-removal script returned error exit status 127
Errors were encountered while processing:
 rvm

Sudo dpkg --purge rvm

出力:上記と同じ

Sudo dpkg -i --force-overwrite package

出力:

dpkg: error processing archive rvm (--install):
 cannot access archive: No such file or directory
Errors were encountered while processing:
 rvm

すべてのエラーを無視して、強制的に削除する方法はありますか?私はWSLでUbuntu 16.04を使用しています。

7
Leo Jiang

壊れたパッケージrvmでこの問題に直面しました。 Sudo apt install -fSudo dpkg --purge --force-all rvmなど多くのことを試しましたが、何も機能しませんでした。最後に、 Debian/Ubuntuで壊れたパッケージを削除する方法 を説明するこのブログ投稿を見つけることができました。

手順は次のとおりです。

  1. たとえば/var/lib/dpkg/infoを使用して、ls -l /var/lib/dpkg/info | grep <package>でパッケージを見つけます。
  2. 前述のブログ投稿で提案されているように、パッケージフォルダーを別の場所に移動します。

    Sudo mv /var/lib/dpkg/info/<package>.* /tmp/
    
  3. 次のコマンドを実行します。

    Sudo dpkg --remove --force-remove-reinstreq <package>
    

例として、ターミナルで次のコマンドを実行して問題を解決しました。

Sudo mv /var/lib/dpkg/info/rvm.* /tmp/
Sudo dpkg --remove --force-remove-reinstreq rvm
36
emont01

ルートとしてコマンドを実行します

Sudo apt-get install -f

パッケージマネージャーには昇格した特権が必要です。

0

Aptitudeで試してインストールしてください:

Sudo apt install aptitude && Sudo aptitude install rvm
0
JosephWorks