CentOS 7.2: Yum repo configuration fails
Solution 1
After more sleuthing, I figured it out. There was a directory hierarchy missing, and yum couldn't detect my CentOS version. Running the following commands fixed it right up:
mkdir -p /etc/yum/vars
echo 7.2.1511 > /etc/yum/vars/releasever
Replace "7.2.1511" with your own release version if you are having this problem and nothing else has worked.
UPDATE 5/21/2017: The "7.2.1511" path has been deprecated. Run the following command to keep yum working if you are still on CentOS 7.2.1511:
echo 7 > /etc/yum/vars/releasever
That should take care of it, should you suddenly discover that yum has stopped working.
Solution 2
A workaround is to run the following command .
rm -fr /var/cache/yum/x86_64/7
yum clean all
This worked for me. CentOS Linux release 7.2.1511 (Core)
Related videos on Youtube
Chris
Updated on September 18, 2022Comments
-
Chris almost 2 years
Fresh install of CentOS 7.2.1511. Server was originally configured with Network Manager and yum was working fine. Recently disabled Network Manager and configured network with traditional service (/etc/sysconfig/network-scripts). New IP addresses were assigned to the NIC's. Setup was originally on a 10.x.x.x network, is now on a 192.168.x.x network.
When I try to run yum I get the following error:
Loaded plugins: fastestmirror, langpacks http://mirror.centos.org/centos/%24releasever/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found Trying other mirror. To address this issue please refer to the below knowledge base article https://access.redhat.com/articles/1320623 If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/ http://mirror.centos.org/centos/%24releasever/extras/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found Trying other mirror. One of the configured repositories failed (CentOS-$releasever - Extras), 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: 1. Contact the upstream for the repository and get them to fix the problem. 2. 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). 3. 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 extras 4. 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=extras.skip_if_unavailable=true failure: repodata/repomd.xml from extras: [Errno 256] No more mirrors to try. http://mirror.centos.org/centos/$releasever/extras/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found
Here are the setups for the network interfaces. em1 and em2 have the same basic config:
TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes PEERDNS=yes PEERROUTES=yes NAME=em1 NM_CONTROLLED=no IPV4_FAILURE_FATAL=no UUID=d67971e8-846d-428c-9a1d-ff2768ae6ddb DEVICE=em1 HWADDR=14:18:77:69:D5:DB ONBOOT=yes IPADDR=192.168.x.x NETMASK=255.255.255.0 GATEWAY=192.168.x.x
My /etc/hosts file:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.x.x hostname
My /etc/resolv.conf file:
nameserver 68.105.28.12 nameserver 68.105.29.11
My CentOS-Base.repo file. I've uncommented the baseurl settings to see if that would work:
# CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 skip_if_unavailable = 1 keepcache = 0 #released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Results of yum repolist:
Loaded plugins: fastestmirror, langpacks http://mirror.centos.org/centos/%24releasever/os/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found Trying other mirror. To address this issue please refer to the below knowledge base article https://access.redhat.com/articles/1320623 If above article doesn't help to resolve this issue please create a bug on https://bugs.centos.org/ http://mirror.centos.org/centos/%24releasever/extras/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found Trying other mirror. http://mirror.centos.org/centos/%24releasever/extras/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found Trying other mirror. http://mirror.centos.org/centos/%24releasever/updates/x86_64/repodata/repomd.xml: [Errno 14] HTTP Error 404 - Not Found Trying other mirror. repo id repo name status extras/$releasever/x86_64 CentOS-$releasever - Extras 0 updates/$releasever/x86_64 CentOS-$releasever - Updates 0 repolist: 0
Curl result:
curl 'http://mirrorlist.centos.org/?release=6&arch=i386&repo=os' http://mirrors.usc.edu/pub/linux/distributions/centos/6.8/os/i386/ http://mirror.lug.udel.edu/pub/centos/6.8/os/i386/ http://mirrors.lga7.us.voxel.net/centos/6.8/os/i386/ http://mirror.chpc.utah.edu/pub/centos/6.8/os/i386/ http://centos.unixheads.org/6.8/os/i386/ http://centos.mirror.lstn.net/6.8/os/i386/ http://centos.mirror.nac.net/6.8/os/i386/ http://mirror.tocici.com/centos/6.8/os/i386/ http://mirror.supremebytes.com/centos/6.8/os/i386/ http://mirror.steadfast.net/centos/6.8/os/i386/
I can ping outside hosts and can dig on domain names:
dig cnn.com ; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> cnn.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29420 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;cnn.com. IN A ;; ANSWER SECTION: cnn.com. 156 IN A 157.166.226.26 cnn.com. 156 IN A 157.166.226.25 ;; Query time: 1 msec ;; SERVER: 68.105.28.12#53(68.105.28.12) ;; WHEN: Mon Jun 20 12:28:44 EDT 2016 ;; MSG SIZE rcvd: 68
I'm sure this has something to do with the old configurations of em1 and em2, when they were bound to different IP addresses, but I don't know where else to look. What might I be missing that'll make yum work?
-
Chris about 8 yearsI've corrected the post. Those whitespaces are not in my conf file. Must've been a word wrap gone bad.