web-dev-qa-db-ja.com

完全にインストールされていないパッケージを削除/インストールする方法は?

先日bsnesをインストールしましたが、何らかの理由でインストールが失敗しました。今、私は更新、新しいパッケージのインストール、または基本的にapt-getコマンドを実行できません。これらはすべて、この壊れたパッケージを処理しようとして失敗するからです。新しいパッケージをインストールしようとしても、同じ運命に陥ります。私が得るエラーは:

Setting up google-chrome-stable (33.0.1750.152-1) ...
/var/lib/dpkg/info/google-chrome-stable.postinst: 124: /var/lib/dpkg/info/google-chrome-stable.postinst: update-alternatives: not found
dpkg: error processing google-chrome-stable (--configure):
 subprocess installed post-installation script returned error exit status 127
Setting up bsnes (0.088-7) ...
/var/lib/dpkg/info/bsnes.postinst: 5: /var/lib/dpkg/info/bsnes.postinst: update-alternatives: not found
dpkg: error processing bsnes (--configure):
 subprocess installed post-installation script returned error exit status 127
Errors were encountered while processing:
 google-chrome-stable
 bsnes
E: Sub-process /usr/bin/dpkg returned an error code (1)

私はグーグルで、ここではAsk Ubuntuで検索してきましたが、有効なソリューションは見つかりませんでした。一般的に推奨される修正は、次を実行することです。

Sudo apt-get clean && Sudo apt-get autoremove
Sudo apt-get -f install
Sudo dpkg --configure -a

ただし、これは機能しません。 apt-getコマンドはすべて上記と同じエラーで失敗し、dpkgコマンドは役に立ちません。彼らはしばしば、Synapticまたはコマンドラインを介してパージすることを提案しますが、これも失敗します。

助けてくれてありがとう

59
Bijak

したがって、さらにグーグルでエラーメッセージを注意深く注意深く読んだ後、dpkgを再インストールする必要があるようです。

Sudo apt-get install --reinstall dpkg

これが問題であることがわかったのは(誰かがこれを検索して見た場合)、update-alternatives: not foundがエラーメッセージにあったということです。 dpkgが再インストールされるとすぐに、他のパッケージは自動的に正常にインストールされました。

25
Bijak

上級ユーザーの場合は、自己責任で使用してください。

次のエラーメッセージによると:

subprocess installed post-installation script returned error exit status 127

/var/lib/dpkg/info/[package_name].postinstを編集してすべてコメントする(または、それを理解して問題を特定する)と、apt-getをもう一度試してください。

この特定の質問では、メッセージは「インストール後」に関係していますが、たとえば代わりに「事前削除」または「事後削除」(この場合、編集するファイルの拡張子は.prermまたは.postrmになります)。

既に投稿したもの以外に、役立つコマンドはほとんどありません。

  • Autocleanは、取得したパッケージファイルのローカルリポジトリをクリアします。

    Sudo apt-get autoclean
    
  • パッケージのインストール/削除を強制します。 ☠慎重に使用

    Sudo apt-get --force-yes install <pkgname>
    

    そして

    Sudo apt-get --force-yes remove <pkgname>
    

また、いつものように、dpkgを使用して、パッケージをインストール、削除、およびパージできます。

  • インストール

    Sudo dpkg -i <pkgname>
    
  • 削除する

    Sudo dpkg -r <pkgname>
    
  • パージ

    Sudo dpkg -P <pkgname>
    
40
Registered User

この/var/lib/dpkg/info/パスのパッケージファイルを削除して、ソースを更新できます。

Sudo rm /var/lib/dpkg/info/[package_name].*
Sudo dpkg --configure -a
Sudo apt-get update

次に、パッケージを再インストールしますSudo apt-get install [package_name]

ドキュメント

14
Hamed

他のすべてが失敗した場合。私がしたことは、最初にディレクトリを次のように変更したことです:

cd /var/lib/dpkg/info

その後、.postinstですべてを削除しました:

Sudo rm *.postinst

その後、リポジトリを更新します

Sudo apt-get update

その後、私がやったときにすべてが正常に戻りました:

Sudo apt-get --force-yes install openjdk-7-jre-headless
13
Mike B

他のすべてが失敗した場合は、dpkgを使用して手動でパッケージを削除できます。 Sudo dpkg -P bsnesを実行すると、bsnesがパージされます。

5
saiarcot895

私の場合、apt-get install -fは機能しました。 mysql-workbench-communityをインストールしていました

以前に試してみたapt autoclean

依存モードが欠落しているためにdpkgエラーが発生しましたが、強制モードでインストールすることで修正できます(依存関係のインストール)

2
Vikas Avnish
Sudo apt-get install -f --reinstall coreutils init-system-helpers

上記を実行した後、すべてのパッケージに対して通常どおりインストール/アップグレード/削除/パージを実行できます。

0
Uddhav Gautam