40

I am running yum check-update and it freezes after a 2 lines of output:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile

I'm not sure what is happening. The last things I remember doing with yum were yum update and looking at one of the CentOS yum repos but I didn't make any changes.

Any suggestions to fix yum?

Yuri
  • 117
barrrista
  • 1,749

6 Answers6

93

All of this did not work with me.

Using CentOS and yum. yum hangs without an error message, at least, so it appears. Pressing Ctrl+C does not work (pressing it again and again and again does).

Several things need to be checked: - are the repositories OK? - is networking OK? - are the yum and rpm databases OK?

So, first start with the easy stuff - clean the databases:

rm -f /var/lib/rpm/__*
rpm --rebuilddb -v -v   
yum clean all

If that did not work, you can set a debug level, error level and timeout for yum in /etc/yum.conf:

debuglevel=1
errorlevel=1
timeout=1

The timeout is standard 30 seconds. So if a repository does not respond, the error takes 30 seconds to appear. Also try using yum without the plugins (like fastest mirror and priorities) with the option --noplugins. Now starting yum again should give you more info faster. Test with:

yum --verbose --noplugins info

You might get something like this:

 Config time: 0.105
 Yum Version: 3.2.22
 Setting up Package Sacks
 Loading mirror speeds from cached hostfile
 * base: mirror.nl.leaseweb.net
 * extras: mirror.nl.leaseweb.net
 * ius: mirrors.ircam.fr
 * rpmforge: mirror.nl.leaseweb.net
 * updates: mirror.nl.leaseweb.net link-to-server-repository/repomd.xml: [Errno 4] IOError: urlopen error (97, 'Address family not supported by protocol') 
 Trying other mirror.

This indicates no information can be received from the server. Try the URL that is displayed by yum (indicated above with link-to-server-repository) in your web browser. Copy&paste it from your yum response, not from this post! If you get a list, you know the repository is online.

If you get an error in your browser, try removing that repository from /etc/yum.repos.d. Try to fetch the list on your server with wget and paste the URL:

wget link-to-server-repository/repomd.xml

If this generates a timeout, then there's a problem with your firewall or proxy settings. Try to disable your firewall.

If you are running csf (ConfigServer Security and Firewall) and lfd you can disable csf with:

csf -x

Try yum again and if it works, you'll have to reconfigure your csf. Enable csf again with:

csf -e

And also check your proxy settings. You can also try to change the https in to http in the .repo files at /etc/yum.repos.d/.

RichVel
  • 226
user179734
  • 1,031
23

You may have a DNS issue. Try to ensure you can resolve DNS records locally:

nslookup google.com

If you get an IP back from that command, you should be OK for DNS. Try then removing the fastestmirror cache and re-running your yum command:

rm -f /var/cache/yum/timedhosts.txt

Garrett
  • 4,217
  • 1
  • 24
  • 33
7

In my case it was a lingering RPM database lock file /var/lib/rpm/.dbenv.lock that made yum commands hang. After removing that file yum could be used again.

2

I had a similar issue. It turned out to be an old DNS address in resolv.conf. I changed the IP to the correct one, and it fixed the issue.

Excellll
  • 12,847
1

Had a similar issue and the reason was the presence of yum lock file /var/run/yum.pid where a previous yum run left it because of a fatal error.

I removed it with sudo rm /var/run/yum.pid and problem was solved.

bekce
  • 161
  • 4
0

Sorry, don't have enough reputation to ask about this comment above:

Trying this solution, I noticed that everything would run fine when using --noplugins. After a binary search amongst the plugins, I found that subscription-manager was the one causing all the trouble. I disabled it and voilà! – Mariuslp

@mariuslp, I also can only run yum by adding --noplugins. Can you provide more detail as to how you did a "binary search amongst the plugins" and what in that search led you determine what was causing the trouble? Thanks!