Apt-Cacherを使用しているマシンNGを別のマシンでキャッシングプロキシとして実行しています。
Sudo apt-get update
を実行しようとすると、次のエラーが表示されます。
W: Failed to fetch gzip:/var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_dists_oneiric-updates_main_source_Sources Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_dists_oneiric-updates_main_binary-AMD64_Packages Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_dists_oneiric-updates_universe_binary-AMD64_Packages Hash Sum mismatch
W: Failed to fetch gzip:/var/lib/apt/lists/partial/it.archive.ubuntu.com_ubuntu_dists_oneiric-updates_main_binary-i386_Packages Hash Sum mismatch
E: Some index files failed to download. They have been ignored, or old ones used instead.
ディレクトリ/etc/apt/sources.list.dは空です。
それを修正するために、私はすでに次のことを試みましたが成功していません:
解決策1:
Sudo rm -fr /var/lib/apt/lists
Sudo mkdir -p /var/lib/apt/lists/partial
Sudo apt-get clean
Sudo apt-get autoclean
解決策2:
Sudo apt-get update -o Acquire::http::No-Cache=True
なにか提案を?
APT-cacher-ngから切り替えて、Squid-deb-proxyをチェックアウトすることをお勧めします。
APT-cacher-ngは私の経験上veryバギーであることが証明されており、多数のバグレポートが傑出しています。最近、Debianでブロックが解除されるのは proposed になり、いくつかの主要なバグが解消されました。 Ubuntuについては、かなり前にSquid-deb-proxyに切り替えましたが、後悔していません。これは素晴らしい代替品であり、私がやってきた中で最高のAPTキャッシュです。
Squid-deb-proxyの場合、パッケージ squid-deb-proxy
をインストールし、許可された宛先ドメインを/etc/squid-deb-proxy/mirror-dstdomain.acl.d
の新しいファイルに追加します。ボーナスとして、クライアントは squid-deb-proxy-client
パッケージをインストールすることにより、ローカルネットワーク内のキャッシュ対応マシンを自動検出できます。
次のコマンドを実行すると、今すぐ修正できます。
http://your-cache-server:3142/acng-report.html?abortOnErrors=aOe&byPath=bP&byChecksum=bS&truncNow=tN&incomAsDamaged=iad&purgeNow=pN&doExpire=Start+Scan+and%2For+Expiration&calcSize=cs&asNeeded=an#bottom
これにより、キャッシュ内の破損したファイルがすべて削除されます。
このパーマナネットを作成するには、 https://www.unix-ag.uni-kl.de/~bloch/acng/html/maint.html#auto-cleanup をご覧ください
基本的に、毎日のキャッシュクリーンアップcronを設定して、キャッシュ全体で完全なチェックサムの一致を行うことができます。これにより、すべての不良サイズとその他の破損がすべて検出され、それらのファイルが消去されます。 /etc/cron.daily/apt-cacher-ng
を編集し、コメントの後に以下を追加しました。
export ACNGREQ="abortOnErrors=aOe&byPath=bP&byChecksum=bS&truncNow=tN&incomAsDamaged=iad&purgeNow=pN&doExpire=Start+Scan+and%2For+Expiration&calcSize=cs&asNeeded=an"
これは、「ヘッダーチェックをスキップ...」以外のメンテナンスページですべての有効期限オプションをクリックするのと同じです。
ディストリビューションをアップグレードした日から、Ubuntu Precise 12.04 LTSでapt-cacher-ng
を使用して、「ハッシュサムミスマッチ」および「無効なヘッダー」エラーで頻繁に(ダウンロード50回に1回)戦います。 Ubuntu Preciseはapt-cacher-ng
バージョン0.7.2-1を使用していますが、これまでこのソフトウェアには多くのバグ修正があり、新しいバージョン:0.7.26-1ははるかに安定しています。
Packages.ubuntu.comからapt-cacher-ng
のUbuntu Quantalバージョンをインストールしました。これはバージョン0.7.26-1です。
apt-cacher-ng
の将来/テストバージョンを入手し、この新しいパッケージを手動でインストールすることを強くお勧めします。
Sudo rm /var/lib/apt/lists/*gzip*
Sudo rm /var/lib/apt/lists/partial/*gzip*
Sudo apt-get update
Sudo rm -f /var/cache/apt/partial/*
Sudo rm -f /var/cache/apt/*.deb
Sudo apt-get update
Sudo touch /etc/apt/apt.conf.d/no-cache
Sudo nano /etc/apt/apt.conf.d/no-cache
そして、これを貼り付けます:
Acquire::http {No-Cache=True;};
今すぐ試してください:
Sudo apt-get update
/var/cache/apt-cacher-ng/download.virtualbox.org
フォルダーを削除すると、Failed to fetch ... Hash Sum mismatch
上のapt-get update
の問題を解決でき、virtualbox-4.3
パッケージがOracleサーバーから妨げられました。
私のアップグレードは常にほぼ成功します-95%のファイルがプロキシ経由でダウンロードされ、最後の〜100個のファイルが「ハッシュ和の不一致」で失敗する可能性があり、提案されたソリューションはいずれも機能しません。
そして、にやにや笑いのために、01proxy
を01proxy.ng
に移動し、aptitude update
を実行し、update-manager
を実行して、配布アップグレードを選択しました。 archive.ubuntu.comから残りのファイル(〜1Gではなく〜70M)のダウンロードに進み、残りのアップグレードはスムーズに進みました。再起動後、01proxy.ngを01proxyに戻し、すべてが正常に戻りました。
私はこれを2回行いました。1回はプロキシサーバー自体で、もう1回はクライアントで、両方ともプロキシを通過するときに失敗しました(95%マーク)。
提案4
Apt-Cacher NGサーバーでSudo apt-get update && Sudo apt-get upgrade -y
を実行すると、問題が解決する場合があります。問題が発生するたびにそれを行う必要があります。
提案5
問題がミラーにある場合があります。サーバーとクライアントの両方で/etc/apt/sources.list
のミラーを変更すると、この問題が解決する場合があります。
リポジトリフォルダ全体を削除することもできます
rm -r /var/cache/apt-cacher-ng/<repository_folder>
ハッシュ和が一致しないパッケージが保存される場所。
次のaptリクエストで、クリーンハッシュサムを含む新しいフォルダーがapt-cacher-ngによって自動的に作成されます。