apt-get update fails to fetch files, “Temporary failure resolving …” error
overview
There are two parts to your question:
- fixing temporary resolve messages
- fixing the package management issues
Temporary resolve
It is likely that this issue is either:
- temporary due to your Internet Service Provider not correctly forwarding internet naming (DNS) to either its or external DNS servers, or
- due to a change in your network has similarly blocked this naming - for example, new router/modem, reconfiguring a switch with a new configuration.
Lets look at the possible DNS resolving issues.
First, temporarily add a known DNS server to your system.
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null
Then run sudo apt-get update
.
If this fixes your temporary resolving messages then either wait for 24 hours to see if your ISP fixes the issue for you (or just contact your ISP) - or you can permanently add a DNS server to your system:
echo "nameserver 8.8.8.8" | sudo tee /etc/resolvconf/resolv.conf.d/base > /dev/null
8.8.8.8
is Google's own DNS server.
source
Another example DNS server you could use is OpenDNS - for example:
echo "nameserver 208.67.222.222" | sudo tee /etc/resolvconf/resolv.conf.d/base > /dev/null
package-management issues
In addition to the temporary resolve issues - you have a few package management issues that need to be corrected - I'm assuming you have tried recently to upgrade from one Ubuntu version to the next recommended version - in your case from Natty (11.04) to Oneiric (11.10)
Open a terminal and type
sudo nano /etc/apt/sources.list
Look for lines that have your a different distribution name in the list than you were expecting - in your case - you have upgraded to oneiric
but you have another release name natty
For example, look for lines that look like deb http:/archive.canonical.com/ natty backports
Add a #
to the beginning of the line to comment it out - for example
#deb http:/archive.canonical.com/ natty backports
Save and re-run:
sudo apt-get update && sudo apt-get upgrade
You should not have any more release naming errors.
At the time of writing this, possible common release names include lucid
, maverick
, natty
, oneiric
, precise
, quantal
, raring
, saucy
, trusty
, utopic
and vivid
.
You can comment the unresolved repo from the file sources.list found on dir /etc/apt/
After modifying the sources.list, clean the apt-get repo as
apt-get clean
Then update
apt-get update
The error will gone away
Note that this answer was written for old versions of Ubuntu. Current versions use a local nameserver controlled by D-Bus, for which the diagnosis part of this answer applies, but not the solution. If /etc/resolv.conf
contains nameserver 127.0.1.1
or more generally nameserver 127.X.Y.Z
, don't modify it.
“Temporary failure resolving …” means that your DNS, i.e. the translation from host names to IP addresses, is not working. Did you reconfigure something on your machine recently? If not, this may be a transient error at your ISP.
Does ping -n 8.8.8.8
show lines like 64 bytes from 8.8.8.8: …
? (Press Ctrl+C to stop ping
.)
- If it doesn't, you specifically have an IP connectivity problem. Run
traceroute -n 8.8.8.8
and see where it stops: if it's in your home/office, check your networking equipment. If you can reach your ISP, complain to them. - If it does, you specifically have a DNS problem. Check the contents of
/etc/resolv.conf
; there should be a line likenameserver 1.2.3.4
(possibly more than one of them). If the lines are there, there is probably a transient problem within your ISP, and you may be able to work around it by addingnameserver 8.8.8.8
to that file (this declares an extra DNS server, which is provided free of charge by Google). If the first number afternameserver
is 127, then there is a DNS relay on your machine (this is a good thing), and you must configure that DNS relay rather than modify/etc/resolv.conf
. On modern versions of Ubuntu, there is a DNS relay by default, it's Dnsmasq, and it's controlled by D-Bus.