先日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またはコマンドラインを介してパージすることを提案しますが、これも失敗します。
助けてくれてありがとう
したがって、さらにグーグルでエラーメッセージを注意深く注意深く読んだ後、dpkg
を再インストールする必要があるようです。
Sudo apt-get install --reinstall dpkg
これが問題であることがわかったのは(誰かがこれを検索して見た場合)、update-alternatives: not found
がエラーメッセージにあったということです。 dpkgが再インストールされるとすぐに、他のパッケージは自動的に正常にインストールされました。
上級ユーザーの場合は、自己責任で使用してください。
次のエラーメッセージによると:
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>
この/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]
他のすべてが失敗した場合。私がしたことは、最初にディレクトリを次のように変更したことです:
cd /var/lib/dpkg/info
その後、.postinst
ですべてを削除しました:
Sudo rm *.postinst
その後、リポジトリを更新します
Sudo apt-get update
その後、私がやったときにすべてが正常に戻りました:
Sudo apt-get --force-yes install openjdk-7-jre-headless
他のすべてが失敗した場合は、dpkg
を使用して手動でパッケージを削除できます。 Sudo dpkg -P bsnes
を実行すると、bsnes
がパージされます。
私の場合、apt-get install -f
は機能しました。 mysql-workbench-communityをインストールしていました
以前に試してみたapt autoclean
依存モードが欠落しているためにdpkgエラーが発生しましたが、強制モードでインストールすることで修正できます(依存関係のインストール)
Sudo apt-get install -f --reinstall coreutils init-system-helpers
上記を実行した後、すべてのパッケージに対して通常どおりインストール/アップグレード/削除/パージを実行できます。