I have a repository on a ubuntu 12.04 server that is serving .deb files for only 64 bit architectures.
When I run apt-get
update I get the following
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)
I'm using reprepro
to add the .deb
files to the repository
reprepro -Vb . includedeb precise package_amd64.deb
And in my distributions file /var/www/site/repo/conf/distributions
I am only specifying amd64 bit architectures.
Origin: apt.site.com
Label: apt repository
Codename: precise
Architectures: amd64 source
Components: main
Description: debian package repo
SignWith: yes
Pull: precise
I circumvent the error by having my sources.list
file include an entry that includes [arch=amd64]
deb [arch=amd64] https://apt.site.com/repo precise main
However I would like to avoid having to specify that in my sources.list
file. Is there anything I can configure on the repository to tell clients trying to pull files from the repo that they should only expect .deb files compiled for amd64 architectures?
On amd64 systems, apt tries to get both amd64 packages and i386 packages. This is (at least partially) because i386 packages are installable on amd64, and some applications and libraries are i386 only (Skype comes to mind). Therefore, apt has to get the list of i386 packages as well. Therefore, you get that error.
As for something on the server side, one way is edit the configuration file to allow i386 as well, and run
reprepro -Vb . export
. This will create an empty i386 Release and Packages file.