我在 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 文件。