如何提供为 amd64 编译的 .deb 文件而不收到 i386 .deb 文件不可用的错误?

如何提供为 amd64 编译的 .deb 文件而不收到 i386 .deb 文件不可用的错误?

我在 ubuntu 12.04 服务器上有一个存储库,它仅为 64 位架构提供 .deb 文件。

当我运行apt-get更新时,我得到以下信息

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 文件?

答案1

在 amd64 系统上,apt 会尝试获取 amd64 软件包和 i386 软件包。这是(至少部分)因为 i386 软件包可以在 amd64 上安装,而某些应用程序和库仅适用于 i386(比如 Skype)。因此,apt 还必须获取 i386 软件包列表。因此,您会收到该错误。

至于服务器端,一种方法是编辑配置文件以允许 i386,然后运行reprepro -Vb . export。这将创建一个空的 i386 Release and Packages 文件。

相关内容