Lately, I was trying to install the Apache webserver in a Linux environment and got the following error.

[root@localhost ~]# yum install httpd 
Loaded plugins: fastestmirror, langpacks Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os 
error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; No address associated with hostname" 
One of the configured repositories failed (Unknown), 
and yum doesn't have enough cached data to continue. 
At this point the only safe thing yum can do is fail. There are a few ways to work "fix" this:
Contact the upstream for the repository and get them to fix the problem.
Reconfigure the baseurl /etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer distribution release than is supported by the repository (and the packages for the previous distribution release still work).
Disable the repository, so yum won't use it by default. Yum will then
just ignore the repository until you permanently enable it again or use --enablerepo for temporary usage: yum-config-manager --disable <repoid>
Configure the failing repository to be skipped, if it is unavailable.
Note that yum will try to contact the repo. when it runs most commands, so will have to try and fail each time (and thus. yum will be be much slower). 
If it is a very temporary problem though, this is often a nice compromise:            
yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true Cannot find a valid baseurl for repo: base/7/x86_64 
[root@localhost ~]#

This usually happens when the server can’t connect to the Internet because of can’t resolve to name server.

Solution

Take a look at /etc/resolv.conf file. I had following

; generated by /usr/sbin/dhclient-script
search localdomain
nameserver 8.8.8.8

Keep “search localdomain” at the bottom, so something like below

; generated by /usr/sbin/dhclient-script
nameserver 8.8.8.8
search localdomain

Save the file and try to perform yum. It was all good for me.

Note: nameserver may differ as shown in the example above. The point here is to keep localhost at the bottom and things should move.

Interested in learning about Linux administration?