apt-get更新「ハッシュ合計の不一致」を修正するにはどうすればよいですか


23

Vagrantを使用してインスタンス化するUbuntu 12.04仮想ボックスvmがあります。

git clone https://github.com/spuder/puppet-gitlab
vagrant up

Vagrant Boxが実行されるとすぐapt-get updateに、次のエラーが表示されます。

...
W: Failed to fetch gzip:/var/lib/apt/lists/partial/apt.puppetlabs.com_dists_precise_main_binary-amd64_Packages  Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/apt.puppetlabs.com_dists_precise_main_binary-i386_Packages  Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/apt.puppetlabs.com_dists_precise_dependencies_binary-i386_Packages  Hash Sum mismatch
W: Failed to fetch http://br.archive.ubuntu.com/ubuntu/dists/precise-updates/restricted/binary-i386/Packages  404  Not Found

私はこのエラーを回避しようとしました。

  • http://www.vagrantbox.es」から3つの異なるUbuntu 12.04ボックスを使用しました
  • ここに提案され解決策:

    sudo rm -rf / var / lib / apt / lists / *
    sudo apt-get update
    sudo apt-get clean

  • puppet labsパッケージを削除して再追加しました

googleの最初の数ページで見つけた同様の提案も試しました。複数のコンピューターと複数のインターネット接続も試しました。

これが複数のインターネット接続上の複数のubuntu vmに影響しているという事実は、ubuntuレポに何か問題があると思うようにします。

この問題を修正するにはどうすればよいですか?

更新

'/ var / lib / apt / lists / partial'を一掃してapt-get cleanを実行してから、ここで提案されているAmazonミラーを使用して/ etc / sources / listのソースを置き換えました

まだ同様のエラーが発生します

Fetched 18.9 MB in 10s (1,865 kB/s)                                                                                                                                                                            
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/us-west-1.ec2.archive.ubuntu.com_ubuntu_dists_precise_main_binary-amd64_Packages  Hash Sum mismatch
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/us-west-1.ec2.archive.ubuntu.com_ubuntu_dists_precise_universe_binary-amd64_Packages  Hash Sum mismatch
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/us-west-1.ec2.archive.ubuntu.com_ubuntu_dists_precise_multiverse_binary-amd64_Packages  Hash Sum mismatch
W: Failed to fetch bzip2:/var/lib/apt/lists/partial/us-west-1.ec2.archive.ubuntu.com_ubuntu_dists_precise_main_binary-i386_Packages  Hash Sum mismatch
E: Some index files failed to download. They have been ignored, or old ones used instead.

Update2

自宅に2つのインターネット接続がありますが、どちらも同じエラーを返しました。私のラップトップを職場のインターネット接続に持ち込むとすぐに、問題はなくなりました。

私のインターネット接続がなんの違いを生むのか、私はまだ興味があります。

Update3

説明については、以下の回答を参照してください。インターネットフィルターがダウンロードを破損していました。

まだ答えがないので、質問を言い換えます。

apt-getでハッシュサムの不一致をオーバーライドする方法はありますか?


ここで提案されているようにキャッシュを消去しましたか?
Kiwy 14

あなたのディストリビューションにはapt-cacher NGも含まれていますか?信頼性がないように見える
Kiwy 14

私はそのブログに出くわし、apt-cache-ngがインストールされていないことを確認しました。別のインターネット接続で別のハイパーバイザーを試したときに問題はなくなりました。
スパーダー14

ハイパーバイザー上の特定のハッシュの実装が壊れているかもしれませんが、それでも非常に奇妙です。
Kiwy

あなたのソリューションも私のために働いた。AWSでホストされているTinyProxyサーバーを実行していて、いくつかの広告フィルターがセットアップされていました。apt.confでプロキシを削除すると、すべてが正常に機能します。

回答:


20

まず、ハッシュ和の不一致エラーが発生する理由を理解する必要があります。一般的に、2つの理由があります。

まず、一部のaptリポジトリはLZMA(.xz)圧縮メタデータを使用します。バージョン1.0より前のaptでは、LZMAアーカイブを正しく(時々)解凍できず、ハッシュ和の不一致エラーが発生します。

これには2つの回避策があります。

  1. XZ圧縮されたメタデータを使用しないようにaptクライアントに伝えます
  2. システムのaptを 1.0より新しいバージョンにアップグレードします

この問題について書いたこのブログ投稿をチェックして、両方の回避策について詳しく説明します。

第二に、APTリポジトリは本質的に際どいものです。実際のAPTメタデータはバグが多いためapt-get update、リポジトリの更新中に発生した場合、aptクライアントは一貫した方法でリポジトリメタデータをダウンロードできません。

これには2つの回避策があります。

  1. APTの新しいバージョンにアップグレードし作成した(または使用したい)リポジトリがハッシュ取得機能をサポートしていることを確認します。これにより、コアで問題が修正されますが、リポジトリを制御しない場合は不可能な場合があります。
  2. システム上のキャッシュされたメタデータを削除して、再試行できます。これを行うには、最初に実行し、apt-get clean次にを実行しrm -rf /var/lib/apt/lists/*ます。次に、を実行しapt-get updateます。これにより、すべてのメタデータが再ダウンロードされます。接続しようとしているリポジトリが実行中に更新されない場合は、問題ありませんapt-get update。それ以外の場合は、これを再度行う必要があります。

これは私のために働いた唯一のソリューションです!ブログ投稿をありがとう
Amir Uval

あなたは、aptが最新バージョンであるほうが良いとコメントしました。更新方法を教えてください。
アミールウヴァル

Acquire-by-hash機能をどの程度正確に使用しますか?私はそれについてのブログを見たことがありますが、どのファイルにそれを入れるべきか正確に言っておらず、例を示していません。
LINUX G33NYUS

6

理解した。

私の2台のコンピューターは、インターネットフィルターをインストールしたパーソナルコンピューターを除き、すべての点で同一です。

k9インターネットフィルタは、明らかにトラフィックを混乱させるカーネル拡張機能をインストールしました。

フィルターをアンインストールするとすぐに、問題はなくなりました。

apt-get update回避策としてハッシュ和の不一致を無視する方法があるかどうか、まだ調査中です。


k9をインストールした後、最近この問題が発生し始めたため、これは実際には非常に理にかなっています。しかし、私はその時に接続をしませんでした。私は明らかにフィルターを無効にしないことを好むので、回避策はいいでしょう(結局、そこには理由があります)。
マフィンザマン14

うんしかし、私はそれを行うことができる方法私はあなたの同じ問題を抱えているので、(フィルタを削除)が、とにかくイムまだでstucked

Webサイトからk9の最新バージョンをダウンロードします。インストールパッケージ内にアンインストーラーがあります。
スパーダー14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.