J'ai un référentiel sur un serveur Ubuntu 12.04 qui sert des fichiers .deb pour seulement des architectures 64 bits.
Lorsque je lance la mise à jour apt-get
, je reçois le message suivant
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)
J'utilise reprepro
pour ajouter les fichiers .deb
au référentiel
reprepro -Vb . includedeb precise package_AMD64.deb
Et dans mon fichier de distributions /var/www/site/repo/conf/distributions
, je ne spécifie que les architectures AMD64 bits.
Origin: apt.site.com
Label: apt repository
Codename: precise
Architectures: AMD64 source
Components: main
Description: debian package repo
SignWith: yes
Pull: precise
Je contourne l'erreur en faisant inclure dans mon fichier sources.list
une entrée contenant [Arch=AMD64]
deb [Arch=AMD64] https://apt.site.com/repo precise main
Cependant, je voudrais éviter de devoir spécifier cela dans mon fichier sources.list
. Existe-t-il quelque chose que je puisse configurer sur le référentiel pour indiquer aux clients essayant d'extraire des fichiers du référentiel qu'ils doivent uniquement s'attendre à des fichiers .deb compilés pour les architectures AMD64?
Sur les systèmes AMD64, apt essaie d’obtenir les paquets AMD64 et i386. Ceci est (au moins en partie) car les packages i386 peuvent être installés sur AMD64 et que certaines applications et bibliothèques ne sont que pour i386 (on pense à Skype). Par conséquent, apt doit également obtenir la liste des paquets i386. Par conséquent, vous obtenez cette erreur.
Pour ce qui est du côté serveur, vous pouvez par exemple modifier le fichier de configuration pour autoriser également i386 et exécuter reprepro -Vb . export
. Cela créera un fichier de version et de packages i386 vide.