「ハッシュ合計の不一致」エラーによるパッケージリストのダウンロードに関する問題


389

更新を確認すると、「リポジトリ情報のダウンロードに失敗しました」というエラーが表示されます。

これは、詳細の下に表示されるものです。

W: Failed to fetch gzip:/var/lib/apt/lists/partial/us.archive.ubuntu.com_ubuntu_dists_natty_main_source_Sources  Hash Sum mismatch, 
E: Some index files failed to download. They have been ignored, or old ones used instead.

回答:


461

/var/lib/apt/listsディレクトリのすべてのコンテンツを削除するだけです:

sudo rm -rf /var/lib/apt/lists/*

次に実行します:

sudo apt-get update

69
すべてのファイルを削除した場合、それらを再度ダウンロードする必要があります。無効なファイルを削除するだけで、このプロセスを高速化できます。
Behrang

9
これはDebianでも起こったことを覚えています。解決策は、リポジトリを切り替える(たとえば、us.ubuntu.comからXX.ubuntu.com(XXは国コード))か、待機することでした。最善のアイデアは、少し待ってから後で再試行することです。リストを削除すると、壊れたリストが修正される場合がありますが、そうなることはほとんどありません。
f.ardelian

4
古い質問ですが、一部のディストリビューション(emdebianなど)では、これを行った後、「mkdir /var/lib/apt/lists/partial」(明らかにルートとして)、または「apt-get update」を使用する必要があります。
アルケノス

7
@AlyssaGonoがフォルダーの場合は、次のように再帰フラグを使用してrmを実行する必要があります。sudo rm -R /var/lib/apt/lists/*ただし、それを実行しても機能しませんでした。
mchid 14

2
私たちは、接頭辞必要-rfそれは次のようになりますので、sudo rm -rf /var/lib/apt/lists/*
アスカー

127

これは既知の問題であり、プロキシキャッシュの背後にあるクライアントでは悪化します。一部の大規模な組織およびISP(特に世界の遠隔地)には、気付かないかもしれない透過的なキャッシュがあります。

基本的な問題は、ミラーが更新されると、aptリポジトリ形式が競合状態の影響を受けることです。この問題は、開発リリースなど、急速に変化するリポジトリに特に影響します。

このバグバグで「自分にも影響する」とマークしてください)とこの青写真で、この修正の進捗状況を追跡できます。ただし、これは複雑な問題であり、解決するには複数のリリースが必要になる場合があることに注意してください。


4
その設計図にはアクセスできなくなりました。ここにあるアーカイブされたコピーを
エリアケイガン

16
このバグはubuntu 16.04
Scott Stensland

1
バグは「修正済みリリース」としてマークされています。

ミラーのデフォルトを最高のサーバーに変更し、その動作を変更しました。
habibun

99

これを修正する最も簡単な方法は次のとおりです。

sudo apt-get clean
sudo apt-get update

12
受け入れられた答えを試した後、私はまだ同じエラーがありましたが、すぐにこれを試して問題を修正しました
アレックス

17
やってsudo rm -rf /var/lib/apt/lists/*、その後sudo apto-get cleanも私のために問題を修正しました。どちらも単独では機能しませんでした。
カム

3
はubuntu 16.04では役に立ちません...上記のコメントも役に立たない
Scott Stensland

3
sudo apt-get clean16.04の助けにはならなかったが、それをsudo rm -rf /var/lib/apt/lists/*修正した
-sdaffa23fdsf

2
私にとって、受け入れられた答えは機能しませんでしたが、これは機能しました(Ubuntu 16.04)。
-JCasso

52

私のために働いた唯一の解決策はunix.stackexchangeからのものです

これは、既知のバグがあり、解決策は異なる圧縮方法で更新することであるため、ファイルが正しくロードされ、チェックサムが成功するために発生します。

これを試してみてください:

sudo rm -rf /var/lib/apt/lists/partial
sudo apt-get update -o Acquire::CompressionTypes::Order::=gz

(rm部分のコメントから@brook_hongに感謝)


9
これはここで私のために働いた唯一のソリューションです。ありがとう。
セリン

3
それも私にとってはうまくいきました。このコマンドを常に実行する必要はないことに注意してください。一度実行するだけで、「apt-get update」をエラーなしで実行できます。
ダルフ

2
さまざまなフォーラムの汎用ソリューションを使用してみましたが、これはすぐに使用できます。ありがとうございました。
wkhwilo

2
Ubuntu 16.04 / linux mintで私のために働いた
David Okwii

3
これが唯一の解決策は、Ubuntuの16.04を使用しています、私のために働いている
サニーシュクラ

44

ディレクトリを削除した後もまだ問題がありましたsudo apt-get update
私の問題を解決したのは次のステップだけです。

sudo sed -i -re 's/\w+\.archive\.ubuntu\.com/archive.ubuntu.com/g' /etc/apt/sources.list

これが正しい修正方法かどうかはわかりません... ここで
解決策を見つけました。


13
de-partはドイツのサーバーを示し、このスクリプトはメインサーバーでローカルサーバーに置き換えられることに注意してください。行くソフトウェアのソース GUIウェイをして設定を切り替えると、より安全で、多くのユーザーのための可逆があるでしょう。以下は、ほぼすべての国のために働く必要がありますsudo sed -i 's/[a-z][a-z].archive.ubuntu.com/archive.ubuntu.com/g' /etc/apt/sources.list
LiveWireBT

23

これは、ミラーが最新でない場合や、過負荷によるエラーを処理している場合に発生する可能性があります。しばらく待ってから再試行するか、別のミラーに切り替えることができます。


2
サーバーが最新ではない、または過負荷であるため、正しい名前のファイルが正常にダウンロードされますが(すべてのバイトが送受信されるまで接続が終了しないという意味で)、破損しますか?(私はそれが起こらないと断言しているのではなく、あなたがそれがなぜ起こるのか説明できるかもしれないと願っているだけです。)
エリアカガン

3
@EliahKagan問題は通常、ファイル自体が破損しているということではなく、データファイル(データファイルのハッシュ(フィンガープリント)を含むインデックスファイル)が存在することです(単純化していますが、それほど多くはありません)。サーバーでリポジトリが更新されると(1時間ごとに発生します)、一方のファイルがもう一方のファイルから更新されます。データファイルは更新されたが、インデックスファイルはまだ更新されていない(またはその逆)ときに、クライアント(apt-getなど)がサーバーにアクセスすることがあります。次に、ハッシュはデータファイルと一致せず、クライアントはデータファイルが破損していると(誤って)想定します。
パトリックヘッカー

1
上記の回答のどれもうまくいかなかったとき、ミラーを変更することは私のために働きました。
マンゴー

10

プロキシの背後にいる場合、99fixbadproxyin という名前のファイルを作成します/etc/apt/apt.conf.d/

sudo gedit /etc/apt/apt.conf.d/99fixbadproxy

これを貼り付けて99fixbadproxy保存します。

Acquire::http::Pipeline-Depth 0;
Acquire::http::No-Cache true;
Acquire::BrokenProxy    true;

次に、更新コマンドを実行します。

sudo apt-get update

1
うわー、私はすべての答えを試してみました、同じ症状をもたらすように多くの異なる問題がどのように見えるかは奇妙です。
dualed

1
私はこの答えにずっとお世話になっています
bremen_matt

5

次のコマンドで問題を解決できます。

sudo rm -R /var/lib/apt/lists/partial/*

その後

sudo apt-get update && sudo apt-get upgrade

それはあなたの問題を解決します。私も同じ問題に直面しましたが、上記のコマンドで問題は解決しました。だから彼らに試してみてください。

ソリューション参照


4
試したところ、うまくいきませんでした。apt-get updateそのディレクトリの同じ場所に最初に作成されたファイル。
フォルカーシーゲル

3

私はまったく同じ問題を抱えていましたが、ターミナルを使用して提供されたすべての解決策は役に立ちませんでした。

私にとっては、それは次のように進むことでした

設定→ソフトウェアと更新→Ubuntuソフトウェア:ダウンロード元:Change LocalMain Server

リポジトリの再読み込みと更新を開始します。私が入るとき:

sudo apt-get update

その後、全く問題はありませんでした。Ubuntu 14.04.4 LTSを使用しています。


1

それが適切な解決策であるかどうかはわかりませんが、以下を実行するとエラーメッセージは消えました。

sudo apt-get updateターミナルに入力すると、エラーの原因となるいくつかのパッケージの名前が表示され、次の操作を行いました。

更新マネージャー(ソフトウェア更新)→設定→ソフトウェアソースの設定→その他のソフトウェア[タブ]→パッケージのチェックを外します

「閉じる」ボタンを押すと、アップデートマネージャーが再度自動的にアップデートの確認を開始し、「このコンピューターのソフトウェアは最新です。最後に確認したのは2秒前です」というメッセージが表示されました。

Kubuntu 12.04


これは私にとってはうまくいきましたが、ここに掲載されている他のソリューションは機能しませんでした。Ubuntu UIがない(コマンドラインをWSLでのみ実行する)ので<pkg>、エラーが発生したパッケージごとに、`sudo apt-get install <pkg> 'を実行しました。Ubuntu 16.04を使用しています。
イッツ

1

私はまったく同じ問題を抱えていましたが、ターミナルを使用して提供されたすべての解決策は役に立ちませんでした。

私にとっては、それは次のように進むことでした

[設定]→[ソフトウェアと更新]→[その他のソフトウェア]:すべてのチェックボックスをオフにして、閉じるを押します。

リポジトリの再読み込みと更新を開始します。私が入るとき:

sudo apt-get update

その後、全く問題はありませんでした。Ubuntu 13.10を使用しています。


これは機能しますが、コアビルドの一部ではないパッケージをインストールできないようにマシンを効果的にブラインドします(これらのチェックボックスが後で再アクティブ化されるまで)...ただし、エラーのないapt-get更新を実現するためだけに必要な場合がありますターゲットパッケージのインストール
スコットステンランド

1

私は同様の問題を抱えており、アプリケーション「ソフトウェアとアップデート」を開き、「Ubuntuソフトウェア」タブで「ダウンロード元」の値を変更することで解決しました(そのドロップダウンリストで、たとえばメインを選択してみてくださいサーバーがそうでなかった場合)。


はい、私のために働いた唯一のもの。スイスのサーバーが壊れているようです。
エリックモランド

1

@ robie-basakのように、apt-cacher-ngミラーキャッシングとして使用しました。そこで、プロキシを削除して問題を解決しました。

ファイル内のプロキシを削除します/etc/apt/apt.conf.d/01proxy

#Acquire::http::Proxy "http://xxx.xx.xx.xx:4321";

それから:

sudo rm -rf /var/lib/apt/lists/*
sudo aptitude update
sudo aptitude upgrade

1

Ubuntu 17.10を最近インストールしたばかりで、一部のリポジトリでHash Sum Mismatchと同じエラーが発生していました。以下に示すようにSoftware and Checked Sourceにアクセスしましたが、ターミナルからリポジトリをダウンロードしても問題はありませんでした。

私のソフトウェアと更新セクション


0

これは、ペアレンタルコントロールを使用してルーターを実行しており、ラズベリーパイを「管理されていない」リストに入れていない場合に発生する可能性があります。私にとっては、URLがルーターによって管理されているサークルドメインにリダイレクトされていることがわかりました。

だから私は、管理されていないリストにpiを追加しただけで、うまく機能しました。


0

次のコマンドを実行して、インストールされていないすべてのパッケージを解決しました。

sudo apt-get install PACKAGENAME

パッケージごとに。これでインストールされ、「ハッシュ合計の不一致」エラーがなくなりました。


0

私には何も機能しませんでした。最後に、壊れたパッケージを手動でダウンロードし、/ var / cache / apt / archivesにコピーして、壊れたパッケージを/ var / cache / apt / archives / partialから削除しました。


0

Ubuntu 18.04でも同じ問題に直面しました。以下は私の実際の経験です。

  1. プロキシを削除します /etc/apt/apt.conf
  2. 公式のapt sources.listへの変更 /etc/apt/sources.list
  3. 走る sudo rm -rf /var/lib/apt/lists/*
  4. きれいなパッケージ sudo apt autoremove -y && sudo apt autoclean -y
  5. 更新およびアップグレード。 sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo apt autoclean -y

できた!


0

これはUbuntu 16.04で起こりましたが、トップの投票されたソリューションはどれも動作しませんでした。ソリューションはパッケージのアップグレードでした:

sudo apt-get update    # this will fail
sudo apt-get upgrade
sudo apt-get update    # this will succeed

古いリスト(sudo rm -rf /var/lib/apt/lists/*および/またはsudo apt-get clean)のクリーニングが助けになったかどうかはわかりません!必要に応じて使用してください。


0

20190112 #Errors #apt #Fix #Updates Failed to fetch ... Hash Sum mismatch

  1. apt-getを実行して、検索するキーワードを見つけます/etc/apt
    • $ sudo apt-get -y update
    • ...
    • Err:77 http://au.archive.ubuntu.com/ubuntu xenial-updates / multiverse DEP-11 64x64アイコン
    • ハッシュ和の不一致
    • ...
    • この場合、キーワードは「DEP-11」です
  2. /etc/aptツリーでキーワードを検索します。
    • $ sudo find / etc / apt -type f -exec egrep -in "DEP-11" "{}" / dev / null ";"
    • /apt.conf.d/50appstream:1:##このファイルは、DEP-11をダウンロードするためにappstreamcli(1)によって提供されます
    • /apt.conf.d/50appstream:6:deb :: DEP-11 {
    • /apt.conf.d/50appstream:9:「$(RELEASE)/ $(COMPONENT)$(NATIVE_ARCHITECTURE)DEP-11 Metadata」の説明。
    • /apt.conf.d/50appstream:15:#DEP-11で説明されているGUIコンポーネントの標準サイズのアイコン
    • /apt.conf.d/50appstream:17:deb :: DEP-11-icons {
    • /apt.conf.d/50appstream:20:説明「$(リリース)/ $(コンポーネント)DEP-11 64x64アイコン」;
    • /apt.conf.d/50appstream:27:#DEP-11 YAMLメタデータ。
    • /apt.conf.d/50appstream:28:deb :: DEP-11-icons-hidpi {
    • /apt.conf.d/50appstream:31:説明「$(リリース)/ $(コンポーネント)DEP-11 128x128アイコン」;
  3. 問題のあるリストを見つけたら、これが機能しない場合に備えてどこかに移動します。

    sudo mv -f /apt.conf.d/50appstream /tmp  
    
  4. クリーンアップ/var/lib/apt

    sudo apt-get -y clean  
    sudo rm -rf /var/lib/apt/lists/*  
    sudo find /var/lib/apt -type d -name "partial" -exec rm -rf "{}" ";"  
    
  5. 今すぐ更新してみてください、今すぐ動作するはずです:

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