If you’re on any of the Linux distributions that use the yum package manager, then you might end up seeing an error that reads Cannot find a valid baseurl for repo: base shortly after you finishing installing the operating system. This is most commonly an error associated with the Fedora, Red Hat and CentOS Linux distributions, but you might also get it when attempting to update yum on compatible versions of SUSE. You’ll normally only get the error when trying to update, but fortunately, there’s a fairly simple way around it.
Method 1: Forcing yum to Find a baseurl
This error message indicates that, for whatever reason, the Yellowdog Updater, Modified (yum) system isn’t capable of accessing the base that it uses to find package information. To reproduce the error message, run sudo yum update or simply yum update if you’re the root user. If it updates this time, then the error was merely caused by a networking hiccup and you don’t need to do anything else.
On the other hand, you might find that you’ve reproduced the error message. The first thing to check is to make sure that you’re connected to the network. You’ll want to be sure that you’re not experiencing an Internet outage, which is by far the most common cause of this error. If you’re on the Internet and still aren’t able to find a valid baseurl, then try ping mirrorlist.centos.org and see what happens. Push Ctrl+C to end the pinging process and see what results you received. If you’re using Red Hat or Fedora, then you might want to substitute the mirrorlist URL that the error reported to you instead of the CentOS URL we used.
Should you be unable to ping the servers, then you might have to wait because they could be experiencing a temporary outage. Otherwise, if you’re having networking issues, try the path shown in the image and toggle the ONBOOT= line to either yes or no. You might want to try both of them. Once you have it set, run sudo dhclient as long as you’re not working through ssh and then attempt to update yum again. Should you still be struggling to get the package manager to update, then try editing that file again.
You’ll find an option called NM_CONTROLLED, which you should set to no. If you do this, then make sure that ONBOOT= is also set to no. When you set options to no, make sure that you’re typing the words only in lower case as some versions of CentOS and Fedora might actually have some sort of case sensitivity in this respect.
Once you’ve finished editing the file, make sure that you have an Ethernet cable attached to the first networking interface on the machine and try running ifdown eth0; ifup eth0 to reset the network. Users of CentOS 7, like in our example, might not be able to find this file because things were changed. If that’s the case, then try looking for what’s shown in the image below or something else that resembles that pattern. CentOS’ developers decided to make some changes the last time that they revamped the minimal install code, and that changed the name of some of the networking interfaces as a result.
Once everything looks good, then try updating yum again and see if it works.
Method 2: Uncommenting the baseurl
In a few rare situations, this error might not be caused by a networking issue. If you’re sure that you’re connected and still can’t get anything to work, then open the file shown in the image below as the root superuser with your favorite text editor. Once again, if you’re not using CentOS like we were then you’ll need a simple name change to find the right file.
You should see a line that reads:
Make sure that this doesn’t start with a comment flag like the # symbol. If it does, then remove it and then save the file. Try updating again. This should have forced the system to update properly this time, which it can’t do if it can’t find this line because it was hidden by a comment flag.