125

I finished installing CentOS 6, but when I tried running yum update I got:

[root@centos6test ~]# yum update
Loaded plugins: fastestmirror, refresh-packagekit
Determining fastest mirrors
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=i386&repo=os
error was 14: PYCURL ERROR 6 - "" Error: Cannot find a valid baseurl for repo: base

Why is that happening? How can I fix it?

migrated from stackoverflow.com Oct 19 '11 at 11:11

This question came from our site for professional and enthusiast programmers.

  • 3
    Are you connected to the network? Can you ping mirrorlist.centos.org? – Nikhil Mulley Dec 4 '11 at 8:51
  • 3
    What happens if you run curl 'http://mirrorlist.centos.org/?release=6&arch=i386&repo=os' ? – rvs Jan 3 '12 at 9:09
157

First you need to get connected, AFAIK CentOS 6 minimal set your network device to ONBOOT=No, just do a dhclient with admin privileges to your network interface and you should be up and running:

$ sudo dhclient

  • I used to setup dhcp client on my remote server using ssh according to this answer and now I lost the connection because server IP is dynamically changed now and I was not thinking of that case before applying changes. This answer is fallacious without enough description and leads to misunderstandings. – Mojtaba Rezaeian Apr 26 '17 at 4:33
  • 4
    For CentOS-7 (1611) version, the ONBOOT=No is located in a file like /etc/sysconfig/network-scripts/ifcfg-enp0s3. I edited that file to ONBOOT=yes and reboot can fix it. – Johnny Wong May 10 '17 at 7:21
  • 2
    Changing to ONBOOT=yes in /etc/sysconfig/network-scripts/ifcfg-enp0s3 works for me, thanks @JohnnyWong – Evi Song Sep 18 '17 at 3:09
24

I had been struggling with the same problem on Centos6.4 x86_64. I got the following error :

Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was 14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'" Error: Cannot find a valid baseurl for repo: base

So, I fixed it by these steps:

edit network interface. For my case, I used eth0 in CentOS 6.X In CentOS 7 you can use the "ensxxx" interface.

vim /etc/sysconfig/network-scripts/ifcfg-eth0

update NM_CONTROLLED to no

ONBOOT=no
NM_CONTROLLED=no
BOOTPROTO=dhcp
DNS1=8.8.8.8
DNS2=4.2.2.2

restart the network interface

ifdown eth0
ifup eth0
  • 1
    ifcfg-eth0 does not exist on CentOs 7 – shailenTJ Jan 31 '15 at 18:31
  • @shailenTJ Just touch it ~ works fine. – Eddie B Sep 5 '15 at 7:01
  • 1
    @shailenTJ They changed the naming system, it'll be enpXsX, on my system it's enp0s3, but it will probably be slighty different on yours. – MarcusJ Dec 15 '15 at 14:32
  • If you do "minimal install", its "ifcfg-enpls0f0". But if you install with a GUI, it overrides that file with something else. Then you use the network settings tool at the top right corner of the main desktop screen. – Chris Dutrow Apr 14 '16 at 5:00
14

I had the same issue and it got resolved after I edited /etc/yum.conf file. If you are running on proxy server and the IP which is given to the server is bypassed but still when you open in browser (IE - we need to give check mark on proxy but no need to give username and password.)

Add this following line in the main section of the file /etc/yum.conf file.

proxy=http://xxx.xxx.xx.xx:8080

ie, substituting the proxy address with actual proxy. Also change the port number if it is not 8080.

If proxy requires authentication, add this also to the file

proxy_username=username
proxy_password=password
9

I edited the file /etc/yum.repos.d/CentOS-Base.repo and uncommented baseurl:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
  • 1
    Thanks! This worked for me. Does anyone know why this is needed, or why it was commented out if it is needed? – Rich Sep 18 '17 at 13:22
9

If pinging a well known host by its name (e.g. ping www.google.com) returns ping: unknown host but pinging an ip (e.g. ping 8.8.8.8) works fine then you have a DNS resolution issue -- try adding these entries to /etc/resolv.conf:

nameserver 8.8.8.8
nameserver 8.8.4.4
2

I had the same problem yesterday and I spent hours trying to solve it. The solution ended up being simple.

Delete the contents of /etc/yum.repos.d/remi.repo and then execute

# yum update

It's done! The file's content will start the download again and be configured.

  • Where is this remi.repo file located? – user28377 Dec 6 '12 at 11:04
  • /etc/yum.repos.d/ – Steven Kryskalla Feb 6 '13 at 20:40
  • I may have miss something, but where do you see he has the Remi's repo installed ? He clearly mentioned 'I finished installing CentOS6', I kind of doubt Remi's repo are configured. I might be wrong... – Spredzy May 14 '13 at 22:21
  • The issue is a malformed file under /etc/yum.repos.d - remi.repo just happened to be the filename in this case – Curtis Mattoon yesterday
1

Here's yet another possibility that I stumbled upon, causing this problem:

I was using a Puppet module to create the EPEL repo for CentOS, the stahnma/epel module.

Within the module it constructed the repo URL with the variable ::os_maj_version which didn't exist in my list of facts. I had to replace that with ::operatingsystemmajrelease.

So the URL in /etc/yum.repos.d/epel.repo was malformed.

0

It happened to me on a Centos 7 environment, and I was able to solve it with the following command:

yum clean all

I had not run any yum command for a few months, seems like the cached metadata got obsolete.

0

All previous answers are correct but unfortunately did not work for me. The below command worked for me:

Warning this will delete all of you Centos repos !!! use this at your own risk

mkdir ~/backup
cp -r /etc/yum.repos.d/Cen* ~/backup
rm /etc/yum.repos.d/Cen*
  • this will delete repo from system – Saurabh Chandra Patel Apr 22 at 15:01
  • You should probably consider including the procedure to recreate the deleted repository files once you have deleted them all. – Kusalananda Jun 2 at 11:31

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