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


38

壊れたパッケージを削除できません。次のコマンドを使用します。 sudo apt-get -f install ただし、次の応答が返されます。

Preparing to unpack .../nodejs_0.10.28-1chl1~trusty1_amd64.deb ...
Unpacking nodejs (0.10.28-1chl1~trusty1) over (0.10.25~dfsg2-2ubuntu1) ...
dpkg: error processing archive /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb (--unpack):
 trying to overwrite '/usr/share/man/man1/node.1.gz', which is also in package nodejs-legacy 0.10.25~dfsg2-2ubuntu1
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Processing triggers for man-db (2.6.7.1-1) ...
Errors were encountered while processing:
 /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

私は次のようなさまざまなコマンドを試しました

 2015  sudo apt-get clean
 2020  sudo dpkg --configure -a
 2023  sudo apt-get autoremove
 2034  sudo apt-get upgrade && sudo apt-get -f install

しかし、結果は得られませんでした。シナプスをインストールできません。壊れたパッケージを削除するにはどうすればよいですか?


ここでいくつかの答えが示唆され--force-remove-reinstreqてい--force-overwriteます。Linuxのエキスパートである場合にのみ、これら2つ(特に最初の2つ)を使用する必要があることに注意してください。
g_p 16

回答:


55

このコマンドを実行して、ubuntuで破損したパッケージを削除します。

sudo dpkg --remove --force-remove-reinstreq package_name 

パッケージを削除した後、コマンドでシステムを更新します

sudo apt-get update

正常に更新された後、システムを再起動します。


5
このコマンドは、システムを修復する以上に破壊するため、常に避ける必要があります
-rancho

2
@ranchoは、パッケージによって異なります。
フィリップ

素敵な1は、方法は、あなたは常に書き込みパッケージ名をGUS、まだ私には、例えば、狂気の形式で900行のリストを参照してくださいBroken libopencv-highgui2.4v5:amd64 Conflicts on libopencv-highgui2.4 [ amd64 ] < 2.4.8+dfsg1-2ubuntu1 > ( libs )。LTSを待つことは、このクレイジーなトリックを本当に私にもたらしました。
nyxee

@rancho「それはあなたのシステムを修理する以上に破壊する」と説明できますか?man dpkgあまり役に立たない。
ステファンゴーリチョン

これは私のために働いた唯一のものでした。パッケージの更新中にmysqlを壊しました。今、私はパージまたは再インストールできませんでした。だからこれは私の命を救った。
アンキットシンハニヤ

11

ターミナルを開き、次のコマンドを使用します

sudo dpkg --purge nodejs-legacy
sudo apt-get install -f

それはあなたの問題を解決するはずです。


11

私はそれを見つけました:

sudo dpkg --remove --force-remove-reinstreq <packagename>

最適に動作します。別のパッケージに依存しているためにパッケージを削除できないというエラーが表示された場合は、そのパッケージも削除します。この手順を数回繰り返してから、削除したパッケージを再インストールする必要があります。

これforce-remove-reinstreqは、パッケージを削除する「核オプション」です。削除しようとしているパッケージに応じて別のパッケージが存在する場合にのみ失敗します。この場合も、依存するパッケージも削除されます。


核オプションは、パージ、クリーニング、再インストール、自動削除の両方で機能し、両方dpkgapt-get失敗しました。ありがとうございました。
LAFKによると、モニカの復職

これはすべてを破棄してやり直す場合に最適なソリューションです。時間を大幅に節約できました!(--removeの後に--purgeも使用しました)
andersevenrud

package_nameaptログファイルに1000行以上(重複)がある場合、それを埋める方法についてのヒントを教えてください。
nyxee17年


3

ターミナルを開き、これらの行を1行ずつ貼り付けます

sudo rm -rf  /var/cache/apt/archives/nodejs_0.10.28-1chl1~trusty1_amd64.deb
sudo apt-get autoclean
sudo apt-get update
sudo apt-get upgrade

その後、もう一度試してください


2

Ubuntuのファイルからジャンクデータを削除しない限りapt-get clean、同じエラーが繰り返さapt-get -f install/var/lib/dpkg/statusます。

apache broken packageを削除する必要があるとします。最初に、ステータスファイルを開き、パッケージapacheを検索する必要があります。パッケージの説明全体を削除し、ステータスファイルを保存します。次に、とを使用apt-get -f installしてみてくださいapt-get clean


2

上記のどれも私にとってはうまくいきませんでした。最終的に、/ var / lib / dpkg / statusファイルを編集し、そこからパッケージを削除しました。

他の何かが失敗した場合でも、私はこれを行うことをアドバイスしません...


これが私のために働いた唯一のことのようです。--force-remove-reinstreqのいわゆる「核オプション」でさえ、問題のパッケージを削除できませんでした。ありがとうございます。
アレックス

1

上記のどれも私にとってはうまくいきませんでした

使用しましたsudo aptitude

エラーをすぐに発見し、オプションを提供しました。選択して修正します。


debianでも修正されました-これが私にとって唯一の有効なソリューションでした。以前のコメントはどれも私にとって役に立たなかった!ありがとう!
ヒルボッド

0

以下がその1つです。

このようにパッケージリストを更新します

 sudo apt-get update

次に、部分的なパッケージをクリーンアップします

 sudo apt-get autoclean

aptキャッシュを消去します

 sudo apt-get clean

不要な依存関係を削除します

 sudo apt-get autoremove

上記のコマンドから、破損したパッケージを特定し、このように強制的に削除できます

 sudo dpkg --remove --force-remove-reinstreq package_name

最後に、依存関係を持つ他のパッケージをmopupします

 sudo apt-get -f install 

それがどうなるか教えてください。


このコマンドは間違っていると思います: `sudo dpkg --remove -force --force-remove-reinstreq package_name。
ファン・シモン

ジ…だからどっちが正しいの?
オースミス

0
  1. 今日または昨日インストールされたすべてのパッケージを照会する awk -v foo=$(date '+%Y-%m-%d') -v bar=$(date -d "yesterday" '+%Y-%m-%d') '($1==foo || $1==bar) && $3~/^install$/ { print $4 }' /var/log/dpkg.log
  2. wine-qqintl:i386が問題を引き起こしたので、パッケージを削除します sudo dpkg -r wine-qqintl:i386

  3. できた。


1
[OK]を、私たちはそのような最近インストールされたパッケージを得ることができますが、これは壊れたパッケージを削除する方法を尋ねる質問に答えるしません
Zanna

0

壊れたkodiパッケージで問題が発生しました。シナプスパッケージマネージャーを開き、「壊れた」フィルターを使用してパッケージを見つけ、完全に削除するようマークしました。それはチャンピオンのように働いた。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.