Note: This is at best, a hack.

Currently yumdownloader does not download x86_64 packages on an i686 host. The –archlist argument is not sufficient, and setarch x86_64 does not work. The –archlist argument doesn’t work because yum picks up repository information from the configuration files where $basearch is expanded to i686 on the hosts. setarch is supposed to remedy this, but it sadly doesn’t. There’s a WONTFIX bug on the matter.

I really needed to download some x86_64 rpms to make an up to date Fedora Electronics Lab spin to give out to a requester. This is what I came up with:

In /etc/yum.repos.d/ , make copies of the fedora.repo and fedora-updates.repo. Call them fedora64.repo, fedora-updates64.repo. Then, modify the files to change the repository names to fedora64 and fedora-updates64 respectively. Then, use a search and replace, to change “$basearch” to “x86_64“.

Now, yumdownloader --disablerepo=* --enablerepo=*64* @electronic-lab --resolve will download your x86_64 packages.

Do remember to remove the new repo files you’ve made, or at least disable them. Keeping them around for regular yum transactions may break your system!