Cập nhật apt-get không tải được tập tin, Lỗi tạm thời khắc phục lỗi


91
Err http://archive.canonical.com natty InRelease    
Err http://security.ubuntu.com oneiric-security InRelease               
Err http://extras.ubuntu.com natty InRelease                            
Err http://security.ubuntu.com oneiric-security Release.gpg
  Temporary failure resolving ‘security.ubuntu.com’
Err http://archive.canonical.com natty Release.gpg
  Temporary failure resolving ‘archive.canonical.com’
Err http://extras.ubuntu.com natty Release.gpg
  Temporary failure resolving ‘extras.ubuntu.com’
Err http://gb.archive.ubuntu.com oneiric InRelease
Err http://gb.archive.ubuntu.com oneiric-updates InRelease
Err http://gb.archive.ubuntu.com natty-backports InRelease
Err http://gb.archive.ubuntu.com oneiric Release.gpg
  Temporary failure resolving ‘gb.archive.ubuntu.com’
Err http://gb.archive.ubuntu.com oneiric-updates Release.gpg
  Temporary failure resolving ‘gb.archive.ubuntu.com’
Err http://gb.archive.ubuntu.com natty-backports Release.gpg
  Temporary failure resolving ‘gb.archive.ubuntu.com’

Reading package lists... Done
W: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/dists/oneiric/InRelease      
W: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/dists/oneiric-updates/InRelease  
W: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/dists/natty-backports/InRelease  
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/oneiric-security/InRelease  
W: Failed to fetch http://archive.canonical.com/ubuntu/dists/natty/InRelease  
W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/natty/InRelease  
W: Failed to fetch http://archive.canonical.com/ubuntu/dists/natty/Release.gpg  Temporary failure resolving ‘archive.canonical.com’
W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/oneiric-security/Release.gpg  Temporary failure resolving ‘security.ubuntu.com’
W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/natty/Release.gpg  Temporary failure resolving ‘extras.ubuntu.com’
W: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/dists/oneiric/Release.gpg  Temporary failure resolving ‘gb.archive.ubuntu.com’
W: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/dists/oneiric-updates/Release.gpg  Temporary failure resolving ‘gb.archive.ubuntu.com’
W: Failed to fetch http://gb.archive.ubuntu.com/ubuntu/dists/natty-backports/Release.gpg  Temporary failure resolving ‘gb.archive.ubuntu.com’
W: Some index files failed to download. They have been ignored, or old ones used instead.

Đây là những gì tôi thấy khi tôi cố gắng chạy sudo apt-get update. Tôi đã thực hiện một bản cập nhật về ví dụ của tôi ngày hôm qua và hiện đang trải nghiệm điều này.

Câu trả lời:


142

tổng quan

Có hai phần cho câu hỏi của bạn:

  • sửa tin nhắn giải quyết tạm thời
  • khắc phục sự cố quản lý gói

Giải quyết tạm thời

Có khả năng vấn đề này là:

  • tạm thời do Nhà cung cấp dịch vụ Internet của bạn không chuyển tiếp chính xác việc đặt tên internet (DNS) đến các máy chủ DNS bên ngoài hoặc bên ngoài hoặc
  • do một sự thay đổi trong mạng của bạn đã chặn cách đặt tên này tương tự - ví dụ: bộ định tuyến / modem mới, cấu hình lại một bộ chuyển mạch với cấu hình mới.

Hãy xem xét các vấn đề có thể giải quyết DNS.

Đầu tiên, tạm thời thêm một máy chủ DNS đã biết vào hệ thống của bạn.

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null

Sau đó chạy sudo apt-get update.

Nếu cách này khắc phục các tin nhắn giải quyết tạm thời của bạn thì hãy đợi trong 24 giờ để xem ISP của bạn có khắc phục được sự cố cho bạn không (hoặc chỉ liên hệ với ISP của bạn) - hoặc bạn có thể thêm vĩnh viễn máy chủ DNS vào hệ thống của mình:

echo "nameserver 8.8.8.8" | sudo tee /etc/resolvconf/resolv.conf.d/base > /dev/null

8.8.8.8 là máy chủ DNS của chính Google.

nguồn

Một ví dụ khác về máy chủ DNS bạn có thể sử dụng là OpenDNS - ví dụ:

echo "nameserver 208.67.222.222" | sudo tee /etc/resolvconf/resolv.conf.d/base > /dev/null

vấn đề quản lý gói

Ngoài các vấn đề giải quyết tạm thời - bạn có một vài vấn đề quản lý gói cần được khắc phục - Tôi cho rằng gần đây bạn đã cố gắng nâng cấp từ một phiên bản Ubuntu lên phiên bản được đề xuất tiếp theo - trong trường hợp của bạn từ Natty (11.04) lên Một chiều (11.10)

Mở một thiết bị đầu cuối và gõ

sudo nano /etc/apt/sources.list

Tìm kiếm các dòng có tên phân phối khác của bạn trong danh sách so với bạn mong đợi - trong trường hợp của bạn - bạn đã nâng cấp lên oneiricnhưng bạn có một tên phát hành khácnatty

Ví dụ: tìm các dòng giống như deb http:/archive.canonical.com/ natty backports

Thêm một #vào đầu dòng để nhận xét nó - ví dụ

#deb http:/archive.canonical.com/ natty backports

Lưu và chạy lại:

sudo apt-get update && sudo apt-get upgrade

Bạn không nên có bất kỳ lỗi đặt tên phát hành nữa.

Tại thời điểm viết bài này, có thể phổ biến tên phát hành bao gồm lucid, maverick, natty, oneiric, precise, quantal, raring, saucy, trusty, utopicvivid.


Hoàn hảo hoạt động :)
Maduka Jayalath

Khi một tên bật ra trong quá trình cập nhật, bạn có thể bỏ qua việc thay đổi DNS và truy cập trực tiếp vào danh sách nguồn.
XUÂN

Vẫn hoạt động hoàn hảo với 15.04 và 15.10
lxx 7/1/2016

1
Điều gì nếu điều này không làm việc?
Matt G

Rất có thể vấn đề DNS của docker không cho phép cập nhật apt-get thành công.
bảnh bao

10

Bạn có thể nhận xét repo chưa được giải quyết từ tệp nguồn.list được tìm thấy trên dir / etc / apt /

Sau khi sửa đổi nguồn.list, hãy xóa repo apt-get như

apt-get clean

Sau đó cập nhật

apt-get update

Lỗi sẽ biến mất


1
Đây là một giải pháp lâu dài cho một vấn đề DNS tạm thời. Nếu bạn quên thay đổi lại, phần mềm từ kho lưu trữ đó sẽ không được cập nhật hoặc có sẵn để cài đặt nữa.
Chai T. Rex

10

Lưu ý rằng câu trả lời này được viết cho các phiên bản cũ của Ubuntu. Các phiên bản hiện tại sử dụng máy chủ tên cục bộ được điều khiển bởi D-Bus, trong đó phần chẩn đoán của câu trả lời này được áp dụng, nhưng không phải là giải pháp. Nếu /etc/resolv.confcó chứa nameserver 127.0.1.1hoặc nói chung nameserver 127.X.Y.Z, không sửa đổi nó.

Lỗi giải quyết tạm thời trên mạng có nghĩa là DNS của bạn , nghĩa là bản dịch từ tên máy chủ sang địa chỉ IP, không hoạt động. Bạn đã cấu hình lại một cái gì đó trên máy của bạn gần đây? Nếu không, đây có thể là một lỗi thoáng qua tại ISP của bạn.

ping -n 8.8.8.8hiển thị dòng như thế 64 bytes from 8.8.8.8: …nào? (Nhấn Ctrl+ Cđể dừng ping.)

  • Nếu không, bạn đặc biệt có vấn đề kết nối IP. Chạy traceroute -n 8.8.8.8và xem nơi dừng của nó: nếu nó ở trong nhà / văn phòng của bạn, hãy kiểm tra thiết bị mạng của bạn. Nếu bạn có thể liên hệ với ISP của bạn, hãy khiếu nại với họ.
  • Nếu có, bạn đặc biệt có vấn đề DNS. Kiểm tra nội dung của /etc/resolv.conf; nên có một dòng như nameserver 1.2.3.4(có thể nhiều hơn một trong số họ). Nếu có các dòng ở đó, có thể có một vấn đề nhất thời trong ISP của bạn và bạn có thể xử lý xung quanh nó bằng cách thêm nameserver 8.8.8.8vào tệp đó (điều này tuyên bố một máy chủ DNS bổ sung, được Google cung cấp miễn phí). Nếu số đầu tiên sau nameserverlà 127, thì có một chuyển tiếp DNS trên máy của bạn (đây là một điều tốt) và bạn phải định cấu hình chuyển tiếp DNS đó thay vì sửa đổi /etc/resolv.conf. Trên các phiên bản hiện đại của Ubuntu, có một chuyển tiếp DNS theo mặc định, đó là Dnsmasq và được điều khiển bởi D-Bus.

1
Lưu ý: ping 8.8.8.8 -c3chỉ ping 3lần, bạn không cần Ctrl + C sau đó. Bạn có thể sử dụng bất kỳ số trong tham số, như -c5, -c1, -c100, vv
Arda

nameserverphải được đặt với máy của tên máy chủ?
albert

@albert Vấn /etc/resolv.confđề là cái trên máy bạn đang bật. Nhưng trên các hệ thống hiện đại, nó chỉ trỏ đến máy cục bộ và nếu bạn gặp sự cố DNS, bạn phải làm việc với D-Bus và NetworkManager.
Gilles

3

Đôi khi, khi bạn đứng sau một máy chủ proxy, điều thậm chí cần thiết là bạn tạo một apt.conftệp /etc/apt/và điền vào đó với các mục cụ thể, như:

Acquire::http::proxy "http://<yourproxyserver>:<Port>";
Acquire::https::proxy "http://<yourproxyserver>:<Port>";
Acquire::ftp::proxy "http://<yourproxyserver>:<Port>";

Nếu có yêu cầu xác thực, tệp cấu hình sẽ trông như sau:

Acquire::http::proxy "http://<domain\user>:<password>@<yourproxyserver>:<Port>";
Acquire::https::proxy "http://<domain\user>:<password>@<yourproxyserver>:<Port>";
Acquire::ftp::proxy "http://<domain\user>:<password>@<yourproxyserver>:<Port>";

1

Vấn đề này cũng có thể được gây ra bởi một giao diện được đặt tên sai. Ví dụ, một Temporary failure resolvingthông báo lỗi có thể được gây ra bởi một giao diện không được đặt tên eth0nhưng emlthay vào đó được đặt tên không chính xác .


Tôi không thể đăng nhập vào tài khoản của mình do sự cố tôi gặp phải với lightdm, tôi cần cập nhật lightdm, bạn có thể mở rộng câu trả lời của mình về cách giải quyết vấn đề không? Cảm ơn.
Shaya


0

Tôi gặp lỗi tương tự khi chạy apt-getlệnh. Hóa ra tôi đã mở Bảng cập nhật phần mềm trên bảng điều khiển.
Điều này dường như đang chặn dòng lệnh apt-get, nhưng tôi không chắc chắn.


0

Đây là một vấn đề DNS. Kiểm tra /etc/resolv.conftập tin của bạn .

ví dụ trong trường hợp của tôi khi tôi gặp vấn đề này và kiểm tra tệp này, tệp trống! nhưng nó nên chứa máy chủ tên dns của bạn

của tôi

nameserver 192.168.10.x

192.168.10.x is my gateway ip address


3
Chào mừng bạn đến với AskUbfox! Nếu bạn muốn giúp đỡ, hãy trả lời dài dòng hơn. Ý tôi là, bao gồm hầu hết các kịch bản có thể và cách để đi hoặc đăng liên kết đến hướng dẫn thích hợp.
Danatela

1
Bạn có thể làm rõ những gì một người nên kiểm tra /etc/resolv.conf?
papukaija

0

Tôi đã có lỗi này. Theo một mẹo từ bộ phận hỗ trợ Linode, tôi đã nhận xét tất cả các dòng IPv6 trong / etc / hosts và sau đó cập nhật apt-get bắt đầu hoạt động.


0

Đối với những người đang sử dụng EC2, hãy nhớ kiểm tra xem cài đặt nhóm bảo mật của bạn có cho phép kết nối ra ngoài với các trang web bạn đang cập nhật không. Bạn có thể đặt Tất cả cài đặt bên ngoài lưu lượng truy cập và xem nếu nó hoạt động.


0

Các giải pháp được chấp nhận không làm việc cho tôi. Ở nơi đầu tiên, chỉ apt-get updatecảnh báo tôi về Temporary failure resolving 'foo.com', nhưng khi tôi thử với nslookup foo.comhoặc ping foo.com, nó hoạt động tốt!

Bản hack / fix cực kỳ bẩn của tôi để giải quyết lỗi này, là thêm các tên miền được giải quyết bằng tay vào /etc/hoststập lệnh ngắn này:

resolveAptHosts()
{
    mapfile -t hosts < <(
        sed -n -r '/^#/d; s;deb(-src)? (http://|ftp://)?([^/ ]+).*;\3;p'\
        /etc/apt/sources.list | sort | uniq )
    # delete all hosts from /etc/hosts, e.g., from an earlier call
    sudo sed -i -r '/^[0-9]{1,3}(\.[0-9]{1,3}){3}[ \t]+('"$( printf '|%s'\
        "${hosts[@]//./\\.}" | sed 's/^|//' )"')[ \t]*$/d' /etc/hosts
    for host in ${hosts[@]}; do
        ip=$( nslookup "$host" | sed -n -r 's|Address:[ \t]*([0-9.]+).*|\1|p' |
              tail -1 )
        sudo bash -c "echo $ip $host >> /etc/hosts"
    done
}

Bây giờ cập nhật sẽ hoạt động:

resolveAptHosts && sudo apt-get update

Nếu bất cứ ai biết lý do tại sao cách giải quyết này hoạt động và làm thế nào để giải quyết lỗi này thực sự, tôi sẽ biết ơn mãi mãi. Tôi cũng đã thử sử dụng sudo apt-get update -o Acquire::ForceIPv4=trueđể loại trừ IPv6 giải quyết các vấn đề, nhưng điều đó cũng không giúp được gì.


0

Tôi gặp vấn đề tương tự trong một máy ảo vmware, cả máy chủ và máy khách đều là Ubuntu. Tôi đã giải quyết vấn đề thay đổi cài đặt của máy ảo. Thay vì sử dụng NAT, tôi đặt Bridged. Nó làm việc cho tôi


0

Các thông báo lỗi sẽ nói rằng bạn không có kết nối internet. Bạn có thể thấy các thông báo lỗi tương tự nếu trong quá trình cài đặt Ubuntu ban đầu, bạn đã chọn không thực hiện cập nhật (không kết nối với wifi / ethernet) sau khi cài đặt xong và bạn có thể khởi động lại ở màn hình hoạt hình đăng nhập ubfox vô tận (xem các chấm di chuyển đó). .. Bạn sẽ thấy các thông báo lỗi ở trên nếu bây giờ bạn khởi động vào Recovery và gặp sự cố nhắc nhở root apt-get updatengay cả khi bạn bật mạng từ Recovery không cho phép bạn kết nối với wifi nếu bạn tránh wifi trong quá trình cài đặt ban đầu.

Giải pháp cho trường hợp cạnh cụ thể này: cắm cáp ethernet sau đó khởi động vào Recovery và phát hành apt-get updatehoặc cài đặt lại từ đầu và đảm bảo bạn kích hoạt cập nhật

vấn đề cốt lõi - nếu bạn không kết nối với wifi trong khi cài đặt để tránh cập nhật gói, bạn sẽ không được nhắc nhở đăng nhập wifi trong khi khởi động Recovery - điều này sẽ được khắc phục ... cũng ở trên các thông báo lỗi nên nói rằng bạn không có internet kết nối

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.