web-dev-qa-db-ja.com

i386 .debファイルが利用できないというエラーを受け取らずに、AMD64用にコンパイルされた.debファイルを提供する方法

64ビットアーキテクチャのみの.debファイルを提供するubuntu 12.04サーバーにリポジトリがあります。

apt-get updateを実行すると、次のようになります

W: Failed to fetch https://test.com/repo/dists/precise/Release Unable to find expected entry 'main/binary-i386/Packages' in Release file (Wrong sources.list entry or malformed file)

repreproを使用して.debファイルをリポジトリに追加しています

reprepro -Vb . includedeb precise package_AMD64.deb

そして、私の配布ファイル/var/www/site/repo/conf/distributionsでは、AMD64ビットアーキテクチャのみを指定しています。

Origin: apt.site.com
Label: apt repository
Codename: precise
Architectures: AMD64 source
Components: main
Description: debian package repo
SignWith: yes
Pull: precise

sources.listファイルに[Arch=AMD64]を含むエントリを含めることでエラーを回避します

deb [Arch=AMD64] https://apt.site.com/repo precise main

ただし、sources.listファイルで指定する必要はありません。 AMD64アーキテクチャ用にコンパイルされた.debファイルのみを期待するようにレポジトリからファイルをプルしようとするクライアントに伝えるために、リポジトリに設定できるものはありますか?

6
user784637

AMD64システムでは、aptはAMD64パッケージとi386パッケージの両方を取得しようとします。これは(少なくとも部分的に)i386パッケージはAMD64にインストール可能であり、一部のアプリケーションとライブラリはi386のみであるためです(Skypeが思い浮かびます)。したがって、aptはi386パッケージのリストも取得する必要があります。したがって、そのエラーが発生します。

サーバー側の何かについては、1つの方法は、構成ファイルを編集してi386も許可し、reprepro -Vb . exportを実行することです。これにより、空のi386リリースおよびパッケージファイルが作成されます。

4
saiarcot895