I've followed the installation instructions for Fedora on a Raspberry Pi 2. I downloaded the MATE Desktop image here and verified it with its signature available here, and then copied it over onto my SD card.

I then setup a chroot environment using a static build of QEMU ARM, and was able to successfully chroot into the image. I can execute any ARM binary and connect to the network.

However, I cannot install any packages inside the chroot due to this strange error from dnf:

# dnf update
Error: Failed to synchronize cache for repo 'fedora' from 'https://mirrors.fedoraproject.org/metalink?repo=fedora-23&arch=arm': Cannot prepare internal mirrorlist: file "repomd.xml" was not found in metalink

If I look at the metalink returned from that URL, there is only an armhfp repository.

As I'm assuming that this is a misconfiguration, is there a way for me to change the basearch variable defined by YUM to be armhfp rather than arm? Is there something else I need to do, something I'm missing?

uname -m reports the architecture:

# uname -m

and file tells me about the compiled files:

# file /bin/bash
/bin/bash: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32, BuildID[sha1]=04f0998ecd3bfaea23bab0223f7ce1f602296085, stripped
  • Can you add the contents of your fedora repo? Please. – GAD3R May 3 '16 at 9:26

This might seem overly obvious and simplistic, but it worked for me:

sed -r -e 's/\$basearch/armhfp/g' -i /etc/yum.repos.d/*.conf

This is a basic "search and replace" for all instances of $basearch and replacing it with armhfp.

Technically, it't not overwriting your variable as you'd asked, it's just removing the need to do so. HTH.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.