การปรับปรุง apt-get ล้มเหลวในการดึงไฟล์ข้อผิดพลาด“ การแก้ไขความล้มเหลวชั่วคราว…”


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.

sudo apt-get updateนี่คือสิ่งที่ฉันเห็นเมื่อฉันพยายามที่จะเรียก ฉันได้อัปเดตอินสแตนซ์ของฉันเมื่อวานและตอนนี้ฉันพบสิ่งนี้

คำตอบ:


142

ภาพรวม

คำถามของคุณมีสองส่วน:

  • แก้ไขข้อความการแก้ไขชั่วคราว
  • แก้ไขปัญหาการจัดการแพคเกจ

แก้ไขชั่วคราว

เป็นไปได้ว่าปัญหานี้อาจเกิดขึ้น:

  • ชั่วคราวเนื่องจากผู้ให้บริการอินเทอร์เน็ตของคุณส่งต่อการตั้งชื่ออินเทอร์เน็ต (DNS) ไม่ถูกต้องไปยังเซิร์ฟเวอร์ DNS ภายนอกหรือ
  • เนื่องจากการเปลี่ยนแปลงในเครือข่ายของคุณได้บล็อกการตั้งชื่อนี้เช่นกันเช่นเราเตอร์ / โมเด็มใหม่การกำหนดค่าสวิตช์ใหม่ด้วยการกำหนดค่าใหม่

ให้ดูที่การแก้ไขปัญหา DNS ที่เป็นไปได้

ก่อนอื่นให้เพิ่มเซิร์ฟเวอร์ DNS ที่รู้จักในระบบของคุณชั่วคราว

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

sudo apt-get updateจากนั้นเรียก

หากวิธีนี้ช่วยแก้ไขข้อความชั่วคราวของคุณให้รอ 24 ชั่วโมงเพื่อดูว่า ISP ของคุณแก้ไขปัญหาให้คุณ (หรือเพียงแค่ติดต่อ ISP ของคุณ) หรือคุณสามารถเพิ่มเซิร์ฟเวอร์ DNS ลงในระบบของคุณอย่างถาวร:

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

8.8.8.8 เป็นเซิร์ฟเวอร์ DNS ของ Google เอง

แหล่ง

อีกตัวอย่างเซิร์ฟเวอร์ DNS ที่คุณสามารถใช้คือOpenDNS - ตัวอย่างเช่น:

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

ปัญหาการจัดการแพคเกจ

นอกเหนือจากปัญหาการแก้ไขชั่วคราว - คุณมีปัญหาการจัดการแพคเกจบางอย่างที่ต้องได้รับการแก้ไข - ฉันสมมติว่าคุณได้ลองอัปเกรดจาก Ubuntu รุ่นหนึ่งไปเป็นรุ่นที่แนะนำต่อไป - ในกรณีของคุณจาก Natty (11.04) Oneiric (11.10)

เปิดเทอร์มินัลแล้วพิมพ์

sudo nano /etc/apt/sources.list

ค้นหาบรรทัดที่มีชื่อการแจกจ่ายอื่นในรายการกว่าที่คุณคาดไว้ในกรณีของคุณคุณได้อัปเกรดเป็นoneiricแต่คุณมีชื่อรุ่นอื่นnatty

ตัวอย่างเช่นค้นหาบรรทัดที่มีลักษณะ deb http:/archive.canonical.com/ natty backports

เพิ่ม a #ไปยังจุดเริ่มต้นของบรรทัดเพื่อใส่ความคิดเห็น - ตัวอย่างเช่น

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

บันทึกและเรียกใช้อีกครั้ง:

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

คุณไม่ควรมีข้อผิดพลาดในการตั้งชื่ออีกต่อไป

ในขณะที่เขียนนี้เป็นไปได้ร่วมกันชื่อปล่อยได้แก่lucid, maverick, natty, oneiric, precise, quantal, raring, saucy, trusty, และutopicvivid


ใช้งานได้อย่างสมบูรณ์แบบ :)
Maduka Jayalath

เมื่อชื่อหนึ่งปรากฏออกมาในระหว่างการอัพเดตคุณอาจข้ามซอฟต์ DNS และไปที่รายการแหล่งที่มาโดยตรง
SPRBRN

ยังคงทำงานได้อย่างสมบูรณ์แบบด้วย 15.04 และ 15.10
lxx

1
เกิดอะไรขึ้นถ้าสิ่งนี้ไม่ทำงาน
Matt G

น่าจะเป็นปัญหา DNS ของนักเทียบท่าที่ไม่อนุญาตให้อัปเดต apt-get สำเร็จ
dashesy

10

คุณสามารถคอมเม้นท์ repo ที่ไม่ได้รับการแก้ไขจากไฟล์ source.list ที่พบใน dir / etc / apt /

หลังจากแก้ไข source.list แล้วให้ล้าง apt-get repo เป็น

apt-get clean

จากนั้นอัปเดต

apt-get update

ข้อผิดพลาดจะหายไป


1
นี่เป็นวิธีแก้ไขปัญหา DNS ชั่วคราว หากคุณลืมเปลี่ยนกลับซอฟต์แวร์จากที่เก็บข้อมูลนั้นจะไม่ได้รับการอัปเดตหรือติดตั้งอีกต่อไป
Chai T. Rex

10

โปรดทราบว่าคำตอบนี้เขียนขึ้นสำหรับ Ubuntu รุ่นเก่า เวอร์ชันปัจจุบันใช้เนมเซิร์ฟเวอร์ท้องถิ่นที่ควบคุมโดย D-Bus ซึ่งเป็นส่วนหนึ่งของคำตอบการวิเคราะห์นี้ แต่ไม่ได้แก้ปัญหา หาก/etc/resolv.confมีnameserver 127.0.1.1หรือมากกว่าโดยทั่วไปnameserver 127.X.Y.Zอย่าแก้ไขมัน

“ การแก้ไขความล้มเหลวชั่วคราว…” หมายความว่าDNSของคุณเช่นการแปลจากชื่อโฮสต์เป็นที่อยู่ IP ไม่ทำงาน คุณเพิ่งกำหนดค่าบางอย่างบนเครื่องของคุณใหม่หรือไม่? หากไม่เป็นเช่นนี้อาจเป็นข้อผิดพลาดชั่วคราวที่ ISP ของคุณ

ไม่ping -n 8.8.8.8แสดงเส้นชอบ64 bytes from 8.8.8.8: …? (กดCtrl+ Cเพื่อหยุดping)

  • หากไม่มีแสดงว่าคุณมีปัญหาการเชื่อมต่อ IP โดยเฉพาะ เรียกใช้traceroute -n 8.8.8.8และดูตำแหน่งที่จะหยุด: หากอยู่ในบ้าน / ที่ทำงานให้ตรวจสอบอุปกรณ์เครือข่ายของคุณ หากคุณสามารถติดต่อ ISP ของคุณให้ร้องเรียนกับพวกเขา
  • ถ้าเป็นเช่นนั้นคุณมีปัญหา DNS โดยเฉพาะ ตรวจสอบเนื้อหาของ/etc/resolv.conf; ควรมีเส้นคล้ายnameserver 1.2.3.4(อาจมากกว่าหนึ่ง) หากมีบรรทัดดังกล่าวอาจมีปัญหาชั่วคราวภายใน ISP ของคุณและคุณสามารถแก้ไขได้โดยเพิ่มnameserver 8.8.8.8ไฟล์ดังกล่าว (นี่เป็นการประกาศเซิร์ฟเวอร์ DNS เพิ่มเติมซึ่ง Google ให้บริการฟรี) ถ้าจำนวนแรกหลังจากnameserverเป็น 127 แล้วมีการถ่ายทอด DNS บนเครื่องของคุณ (ซึ่งเป็นสิ่งที่ดี) และคุณต้องกำหนดค่าที่ถ่ายทอด DNS /etc/resolv.confมากกว่าแก้ไข ใน Ubuntu รุ่นทันสมัยมีการถ่ายทอด DNS ตามค่าเริ่มต้นเป็นDnsmasqและควบคุมโดย D-Bus

1
หมายเหตุ: ping 8.8.8.8 -c3ส่ง Ping 3ครั้งเดียวเท่านั้นคุณไม่จำเป็นต้องกด Ctrl + C คุณอาจจะใช้ตัวเลขใด ๆ ในพารามิเตอร์เช่น-c5, -c1, -c100ฯลฯ
อาร์ดา

nameserverจะต้องมีการวางไว้กับเครื่องของชื่อโฮสต์หรือไม่
อัลเบิ

@albert สิ่ง/etc/resolv.confสำคัญคือสิ่งที่อยู่บนเครื่องที่คุณใช้อยู่ แต่ในระบบที่ทันสมัยมันก็ชี้ไปที่เครื่องท้องถิ่นและหากคุณมีปัญหา DNS คุณต้องทำงานกับ D-Bus และ NetworkManager
Gilles

3

บางครั้งเมื่อคุณอยู่หลังพร็อกซีเซิร์ฟเวอร์ก็จำเป็นอย่างยิ่งที่คุณต้องสร้างapt.confไฟล์/etc/apt/และเติมด้วยรายการเฉพาะเช่น:

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

หากจำเป็นต้องมีการตรวจสอบสิทธิ์ไฟล์กำหนดค่าจะมีลักษณะดังนี้:

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

ปัญหานี้อาจเกิดจากอินเทอร์เฟซที่ตั้งชื่อผิด ตัวอย่างเช่นTemporary failure resolvingข้อความแสดงข้อผิดพลาดอาจเกิดจากอินเตอร์เฟสที่ไม่มีชื่อeth0แต่ตั้งชื่อไม่ถูกต้องemlแทน


ฉันไม่สามารถลงชื่อเข้าใช้บัญชีของฉันเนื่องจากปัญหาที่ฉันพบกับ lightdm ฉันต้องอัปเดต lightdm คุณสามารถขยายคำตอบของคุณเกี่ยวกับวิธีการแก้ไขปัญหาได้หรือไม่? ขอบคุณ
Shayan


0

ฉันพบข้อผิดพลาดที่คล้ายกันเมื่อเรียกใช้apt-getคำสั่ง ปรากฎว่าฉันเปิดแผงการอัปเดตซอฟต์แวร์บนคอนโซล
สิ่งนี้ดูเหมือนจะปิดกั้นบรรทัดคำสั่งapt-getแต่ฉันไม่แน่ใจ


0

นี่เป็นปัญหา DNS ตรวจสอบ/etc/resolv.confไฟล์ของคุณ

เช่นในกรณีของฉันเมื่อฉันมีปัญหานี้ & ตรวจสอบไฟล์นี้ไฟล์นั้นว่างเปล่า! แต่ควรมี dns-nameserver ของคุณ

เหมือง:

nameserver 192.168.10.x

192.168.10.x is my gateway ip address


3
ยินดีต้อนรับสู่ AskUbuntu! หากคุณต้องการความช่วยเหลือ ฉันหมายถึงครอบคลุมสถานการณ์ที่เป็นไปได้มากที่สุดและวิธีไปหรือโพสต์ลิงก์ไปยังบทช่วยสอนที่เหมาะสม
Danatela

1
คุณช่วยอธิบายสิ่งที่ควรเช็คอินได้/etc/resolv.confไหม
papukaija

0

ฉันมีข้อผิดพลาดนี้ ปฏิบัติตามเคล็ดลับจากการสนับสนุนของ Linode ฉันใส่ความคิดเห็นทั้งหมดของสาย IPv6 ใน / etc / hosts จากนั้นอัปเดต apt-get เริ่มทำงาน


0

สำหรับผู้ที่ใช้ EC2 อย่าลืมตรวจสอบว่าการตั้งค่ากลุ่มความปลอดภัยของคุณอนุญาตการเชื่อมต่อขาออกไปยังเว็บไซต์ที่คุณกำลังอัปเดต คุณสามารถกำหนดการตั้งค่าการรับส่งข้อมูลทั้งหมดและดูว่าใช้ได้หรือไม่


0

ทางออกที่ยอมรับใช้ไม่ได้สำหรับฉัน ในตอนแรกapt-get updateเตือนฉันเท่านั้นเกี่ยวกับTemporary failure resolving 'foo.com'แต่เมื่อฉันลองด้วยnslookup foo.comหรือping foo.comใช้งานได้ดี!

การแฮก / แก้ไขสกปรกของฉันอย่างไม่น่าเชื่อสำหรับการแก้ไขข้อบกพร่องนี้คือการเพิ่มโดเมนที่ได้รับการแก้ไขด้วยตนเอง/etc/hostsด้วยสคริปต์สั้น ๆ นี้:

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
}

ตอนนี้การอัปเดตควรใช้งานได้:

resolveAptHosts && sudo apt-get update

หากใครรู้ว่าทำไมการแก้ปัญหานี้ใช้งานได้และวิธีแก้ข้อบกพร่องนี้ด้วยความจริงฉันจะขอบคุณไปชั่วนิรันดร์ ฉันยังลองใช้sudo apt-get update -o Acquire::ForceIPv4=trueเพื่อแยกปัญหา IPv6 ออก แต่นั่นก็ไม่ได้ช่วยอะไรเช่นกัน


0

ฉันได้รับปัญหาเดียวกันในเครื่องเสมือน vmware โฮสต์และแขกทั้งสองเป็นอูบุนตู ฉันแก้ไขปัญหาการเปลี่ยนการตั้งค่าของเครื่องเสมือน แทนที่จะใช้ NAT ฉันตั้งค่า Bridged มันใช้งานได้สำหรับฉัน


0

ข้อความแสดงข้อผิดพลาดควรบอกว่าคุณไม่มีการเชื่อมต่ออินเทอร์เน็ต คุณสามารถเห็นข้อความแสดงข้อผิดพลาดเดียวกันนี้ได้ในระหว่างการติดตั้ง Ubuntu เริ่มต้นคุณเลือกที่จะไม่ทำการอัปเดต (ไม่ได้เชื่อมต่อกับ wifi / ethernet) ซึ่งหลังจากติดตั้งเสร็จแล้วและคุณรีบูตเครื่องจะทำให้คุณ .. คุณจะเห็นข้อความแสดงข้อผิดพลาดข้างต้นหากคุณบูตเข้าสู่ Recovery และที่ root prompt ปัญหาapt-get updateแม้หลังจากที่คุณเปิดใช้งานเครือข่ายจากการกู้คืนซึ่งไม่อนุญาตให้คุณเชื่อมต่อกับ wifi หากคุณหลีกเลี่ยง wifi ระหว่างการติดตั้งครั้งแรก

วิธีการแก้ปัญหากรณีขอบนี้โดยเฉพาะ: เสียบสายเคเบิลอีเธอร์เน็ตแล้วบูตเข้าสู่การกู้คืนและปัญหาapt-get updateหรือติดตั้งใหม่ตั้งแต่เริ่มต้นและมั่นใจว่าคุณเปิดใช้งานการปรับปรุง

ปัญหาหลัก - หากคุณไม่ได้เชื่อมต่อกับ wifi ในระหว่างการติดตั้งดังนั้นคุณจึงหลีกเลี่ยงการอัปเดตแพ็คเกจคุณจะไม่ได้รับพรอมต์ล็อกอิน wifi ในระหว่างการบูตระบบ - นี่ควรจะได้รับการแก้ไข ... สัมพันธ์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.