2

サーバーのクラスターにアプリケーションをデプロイするためのプライベート APT リポジトリをセットアップしています。基本的にこちらの手順に従ってrepreproでリポジトリをセットアップしましたが、事前に生成されたGPGキーを使用しています。

ただし、ターゲットサーバーで apt-get update を実行すると、次のエラーが発生し続けます。

W: Failed to fetch http://domU-xx-xx-xx-xx-xx-xx.compute-1.internal/aptrepo/dists/oneiric/non-free/i18n/Index
No Hash entry in Release file /var/lib/apt/lists/partial/domU-xx-xx-xx-xx-xx-xx.compute-1.internal_aptrepo_dists_oneiric_non-free_i18n_Index

これについて心配する必要がありますか?もしそうなら、どうすれば修正できますか?

4

3 に答える 3

5

しばらくの間、この問題が発生していましたが、自動ビルドに失敗し、グーグルで調べても何も得られませんでした。私たちが発見したのは、問題が Web サーバーの構成にあるということでした。以下を使用してリポジトリを構築します。

reprepro -V --ignore=wrongdistribution -b repository include precise <some-package.changes>

次に、リポジトリ ディレクトリを nginx サイトにマッピングしました。デフォルトのnginxセットアップには次の構成があり、これが問題を引き起こしていました。

try_files $uri $uri/ index.html;

これにより、すべてのファイルがリソースにマッピングされ、見つからなかったものはすべて index.html ページにマッピングされました。そのため、apt が dist/main/i18n/Index を探していたときに HTTP 200 を受信して​​いましたが、ファイルは apt が期待していたものではなかったため、エラーが発生しました。config の try_files 部分を次のように置き換えました。

server {
    ...
    location / {
        ...
        try_files $uri $uri/; # index.html;
        ...
    }
    ...
}

そして、*/i18n/Index へのすべてのリクエストが何らかの HTTP エラー コードを返し、それらを解析しようとせず、問題は解消されました。これがお役に立てるかどうかはわかりませんが、debs やレポではなくウェブサーバーに問題があることを突き止めようとして 2 時間も苦労しました。

于 2012-05-21T21:25:02.467 に答える