半分インストールされたパッケージを修正


42

ステートメントを使用しsudo apt-get upgradeているときにエラーが発生しています:

dpkg: error processing libgfortran3:amd64 (--configure):
  package libgfortran3:amd64 is not ready for configuration
  cannot configure (current status `half-installed')
Errors were encountered while processing:
  libgfortran3:amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

他のアプリケーションのインストール/アップグレードをブロックしないようです。この問題は、アプリケーションのアップグレード中にPCを直接シャットダウンしたために発生したと考えています。

どうすれば修正できますか?


回答:


38
sudo dpkg --remove --force-remove-reinstreq --dry-run libgfortran3:amd64

それは単なるドライランです。削除で何libgfortran3が必要になるかわかりませんが、実行して確認してください。システム全体を食い尽くすことはないと仮定して、それなしで再度実行する--dry-runと、sudo apt-get install ...必要なパッケージを戻すことができます。


4
解決しました、ありがとう!記録のために、私はそれを実行したdpkg: warning: package is in a very bad inconsistent state; you should reinstall it before attempting a removalので、packages.ubuntu.comからパッケージを手動でダウンロードして実行しましたsudo dpkg -i WHERE/THE/DOWNLOADED/PACKAGE/IS。それからすべてが良くなりました。
ボラM.アルパー

1
私の場合、これらの手順を実行した後、「apt-get install -f」を実行するだけでパッケージが再インストールされ、そのために依存関係が壊れている他のいくつかも修正されました。これは、debian 7のlibx11-dataパッケージ用です。
bchurchill

なし--dry-runで、あなたが言ったように、私のために働いた。ありがとうございました!
forvas

69

半分インストールされたパッケージエラーの場合、-reinstallが機能しました。

sudo apt-get install --reinstall packagename 

1
はい。ただし、packagenameを再インストールした後、apt-getは半分構成されたパッケージの構成を続行するという警告が表示されます。
セドリックナイト

5
これは、受け入れられた答えよりも安全です。
ザンナ

sudo apt-get install --reinstal ncurses-baseと後でrootユーザー(sudo -s)を使用してsudo apt-get更新を実行しましたが、それはそのように
動作しました...-ArifMustafa

すばらしいです。その解決策だけが私の問題を解決しました
-iWizard

これは私のためにそれをしました。php-pearは頭痛の種でした。ありがとう!
pcarvalho

6
sudo apt install --reinstall packagename

これは魅力のように機能します。それは私が何ヶ月も経験していた問題を解決しました。私の場合はパッケージでしたlibmysqlcppconn7v5

私がしたことはすべて実行された sudo apt install --reinstall libmysqlcppconn7v5


2

GUIでこれを修正する場合は、シナプスを使用できます。Synapticは、以前のバージョンのubuntuに含まれていた優れたパッケージ管理ツールです。それをインストールするには:

sudo apt-get install synaptic

破損したパッケージの修正をクリックします。


シナプスは、壊れたカテゴリにパッケージをリストしません:(
Barun 14

2

パッケージkibanaでも同じ「ハーフインストールパッケージ」の問題が発生しました。次のエラーが表示されました。

dpkg: error processing kibana (--configure):
package kibana is not ready for configuration
cannot configure (current status 'half-installed')
Errors were encountered while processing:
  kibana
E: Sub-process /usr/bin/dpkg returned an error code (1)

誰かがまだこの種の問題に直面している場合、これを試すことができます:

sudo rm /var/lib/dpkg/info/kibana*
cd /var/cache/apt/archives
sudo rm kibana*
apt-get --reinstall install kibana

これは私のために動作します。「kibana」という単語を、インストール済みのパッケージ名に置き換えるだけです。


2

これにより、パッケージを再インストールせずに問題が修正されます。

sudo dpkg --force-remove-reinstreq --remove <package_name here>

に続く: sudo apt-get update


なんで--force-remove-reinstreq?パッケージマネージャーは、再インストールが必要であるとは述べていません。一般に、未構成のパッケージの場合、定期的な削除は問題なく機能します。-1
デビッドフォースター

sudo apt-get remove <package選択肢がなくなって、その半分インストールされたパッケージを再インストールしたくない場合は、私がやるだけです--force-remove-reinstreq。その後、私はそれらのジャンクを削除するために使用します。 LinuxはUbuntuをベースにしているため、
少し

1
パッケージマネージャーは、すべてのDebianベースのディストリビューションで同じように動作します(これdpkgは結局のところを意味します)が、--force-*「念のため」を使用すべきではありません。エラーメッセージは理由があるため、経験の浅いユーザーが軽視すべきではないため、不必要な--force-*オプションを提案しないでください。それ以外の場合は、常にオプションを使用することをお勧めしますが--force-all--force-*オプションをdpkg完全に削除し、デフォルトの動作にすることをお勧めします。
デビッドフォースター

さて、それを認める...私はもっと..謝罪、より仕事を得ることが行われているものとどのように正確に知ることが心配されていた
コードギアス反逆のルルーシュ

うーん…私は、受け入れられた答えが同じことを示唆しているのを見ています。だから私は--force-remove-reinstreq不必要であることについて間違っているかもしれません。しかし、それはまた、あなたの答えが(ほとんど)それの複製であることを意味します。次回は幸運を。
デビッドフォースター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.