CentOS 7.2: Yum repo configuration fails

23,145

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

Source

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)

Share:
23,145

Related videos on Youtube

Chris
Author by

Chris

Updated on September 18, 2022

Comments

  • Chris
    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
    Chris about 8 years
    I've corrected the post. Those whitespaces are not in my conf file. Must've been a word wrap gone bad.