คุณใช้sudo apt updateงาน Pardus 23 แต่คำสั่งหยุดทำงานพร้อมข้อความเช่น “ไม่สามารถแก้ไขได้” “การเชื่อมต่อหมดเวลา” หรือ “ไม่สามารถดึงข้อมูลได้” จนกว่า APT จะสามารถรีเฟรชดัชนีแพ็กเกจได้ การติดตั้งและการอัปเดตซอฟต์แวร์อาจล้มเหลวหรือแสดงข้อมูลแพ็กเกจที่ล้าสมัย ข้อความแสดงข้อผิดพลาดแรกนั้นมีประโยชน์: ความล้มเหลวของ DNS เซิร์ฟเวอร์ที่ไม่สามารถเข้าถึงได้ ชุดที่เก็บข้อมูลที่ไม่ถูกต้อง และคีย์ลงนามที่หมดอายุ จำเป็นต้องแก้ไขแตกต่างกัน
ดำเนินการตรวจสอบตามรายการด้านล่าง โดยเริ่มจากรายการที่ส่งผลกระทบน้อยที่สุดไปจนถึงรายการที่เฉพาะเจาะจงที่สุด เอกสารเผยแพร่ฉบับทางการของ Pardus 23 ระบุชุดคลังซอฟต์แวร์ไว้ดังนี้yirmiucและyirmiuc-deb; อย่าแทนที่ด้วยbookwormชุดคลังซอฟต์แวร์ของ Debian เพียงเพราะ Pardus ใช้ Debian เป็นพื้นฐาน รายการคลังซอฟต์แวร์ของ Pardus เวอร์ชัน 23.4 ที่เผยแพร่แล้วมีลิงก์อยู่ด้านล่าง และสถานะของคลังซอฟต์แวร์อาจเปลี่ยนแปลงได้ตลอดเวลา ดังนั้นโปรดเปรียบเทียบรายการของคุณกับเอกสารอย่างเป็นทางการของ Pardus ก่อนทำการแก้ไข
1. อ่านข้อความแสดงข้อผิดพลาดของ APT อย่างละเอียดก่อนทำการเปลี่ยนแปลงใดๆ
ลองทำการอัปเดตหนึ่งครั้ง แล้วจดบันทึกบรรทัดแรกที่เกิดข้อผิดพลาดและ URL ของที่เก็บข้อมูล:
sudo apt update
เบาะแสทั่วไปได้แก่:
Temporary failure resolvingหรือCould not resolve: การค้นหา DNS ล้มเหลว APT อาจไม่สามารถเข้าถึงที่เก็บข้อมูลได้เลยConnection timed outหรือNetwork is unreachable: Could not connectอุปกรณ์ เกตเวย์ ไฟร์วอลล์ พร็อกซี หรือเซิร์ฟเวอร์ระยะไกลไม่สามารถเข้าถึงได้404 Not Foundหรือ “ไม่มีไฟล์ Release”: เส้นทาง ชุด หรือส่วนประกอบที่กำหนดค่าไว้อาจไม่ถูกต้อง หรือเซิร์ฟเวอร์มิเรอร์อาจไม่มีที่เก็บข้อมูลนั้นNO_PUBKEYหากพบข้อความว่า “ไม่ได้ลงนาม” หรือลายเซ็นหมดอายุ นี่เป็นปัญหาเกี่ยวกับการตรวจสอบสิทธิ์หรือเวลา ไม่ใช่เหตุผลที่จะปิดการตรวจสอบลายเซ็นHash Sum mismatchดัชนีที่ดาวน์โหลดมาอาจไม่สอดคล้องกันหรือล้าสมัยในเซิร์ฟเวอร์สำรองหรือแคชในเครื่อง โปรดตรวจสอบการเชื่อมต่อและลองใหม่อีกครั้งก่อนที่จะเปลี่ยนแปลงคำจำกัดความของที่เก็บข้อมูล
อย่าเริ่มต้นด้วยการลบไฟล์ APT หรือเพิ่มมิเรอร์แบบสุ่ม เก็บรักษาผลลัพธ์ทั้งหมดไว้ เพราะจะบอกคุณว่าควรแก้ไขปัญหาในส่วนใด
2. ตรวจสอบการเชื่อมต่อและ DNS
ตรวจสอบให้แน่ใจว่าคอมพิวเตอร์มีเส้นทางเครือข่าย จากนั้นตรวจสอบว่าชื่อโฮสต์ของที่เก็บข้อมูล Pardus สามารถแก้ไขได้หรือไม่:
ip route
getent hosts depo.pardus.org.tr
คำสั่งแรกควรแสดงเส้นทางเริ่มต้นสำหรับการเชื่อมต่ออินเทอร์เน็ตทั่วไป คำสั่งที่สองควรส่งคืนที่อยู่หนึ่งรายการขึ้นไป หากไม่แสดงอะไรเลยหรือรายงานข้อผิดพลาดในการค้นหา ให้ลองใช้ชื่อโฮสต์อื่นที่เครือข่ายของคุณอนุญาต หากลองใช้ชื่อที่ไม่เกี่ยวข้องหลายชื่อแล้วไม่สำเร็จ ให้เชื่อมต่อ Wi-Fi หรือ Ethernet ใหม่ รีสตาร์ทเราเตอร์หากเหมาะสม หรือสอบถามผู้ดูแลระบบเครือข่ายว่ามีการกรอง DNS หรือไม่ ในเครือข่ายที่มีการจัดการ พร็อกซีหรือพอร์ทัลแบบจำกัดการเข้าถึงอาจบล็อกการเข้าถึงที่เก็บข้อมูลได้เช่นกัน ให้ทำการลงชื่อเข้าใช้ให้เสร็จสมบูรณ์หรือใช้การตั้งค่าพร็อกซีที่ได้รับอนุมัติ
หากdepo.pardus.org.trล้มเหลว ให้รอสักครู่แล้วลองใหม่อีกครั้งจากเครือข่ายอื่นหากเป็นไปได้ วิธีนี้จะช่วยแยกปัญหา DNS หรือไฟร์วอลล์ในเครื่องออกจากปัญหาที่เก็บข้อมูลชั่วคราวหรือเส้นทาง การทดสอบ ping ไม่ได้ให้ข้อสรุปที่แน่ชัดเสมอไป เพราะเซิร์ฟเวอร์และเครือข่ายอาจบล็อก ICMP ในขณะที่อนุญาตให้มีการรับส่งข้อมูลเว็บได้
3. ตรวจสอบนาฬิการะบบและการตรวจสอบ HTTPS
นาฬิกาที่เดินช้าหรือเร็วกว่าเวลาจริงมากเกินไป อาจทำให้ใบรับรองของที่เก็บข้อมูลปรากฏว่ายังไม่ถูกต้องหรือหมดอายุแล้ว และอาจทำให้การตรวจสอบความถูกต้องของลายเซ็นเกิดความสับสน ตรวจสอบเวลาและสถานะการซิงโครไนซ์ได้ด้วย:
timedatectl status
แก้ไขวันที่ เวลา และเขตเวลาของระบบในการตั้งค่า Pardus จากนั้นเปิดใช้งานการซิงโครไนซ์เวลาเครือข่ายหากอุปกรณ์ได้รับอนุญาตให้ใช้งาน ลองเรียกใช้โปรแกรมอีกครั้งsudo apt updateหากข้อผิดพลาดระบุถึงใบรับรอง ให้ตรวจสอบนาฬิกาก่อน ในเครือข่ายที่ทำงานซึ่งตรวจสอบการรับส่งข้อมูลที่เข้ารหัส ผู้ดูแลระบบอาจต้องระบุใบรับรองที่เชื่อถือได้ขององค์กรผ่านกระบวนการของระบบที่รองรับ อย่าปิดใช้งาน TLS หรือการตรวจสอบลายเซ็นเพื่อหลีกเลี่ยงปัญหานี้
4. ตรวจสอบไฟล์แหล่งที่มาของ APT ทุกไฟล์
APT จะอ่าน/etc/apt/sources.listและดึงไฟล์ใน/etc/apt/sources.list.d/. แอปพลิเคชันของบุคคลที่สาม การแก้ไขด้วยตนเอง หรือความพยายามอัปเกรดเก่าๆ อาจทำให้เกิดชุดโปรแกรมที่ไม่ถูกต้องหรือรายการซ้ำซ้อน ตรวจสอบไฟล์ก่อนทำการแก้ไข:
cat /etc/os-release
sudo grep -R -n -E '^(deb|deb-src|Types:|URIs:|Suites:|Components:)' \\
/etc/apt/sources.list /etc/apt/sources.list.d/
ตรวจสอบให้แน่ใจว่าการติดตั้งนั้นเป็น Pardus 23 จริงๆ ตรวจสอบว่าชื่อโฮสต์และเส้นทางของที่เก็บข้อมูล Pardus สะกดถูกต้อง และตรวจสอบว่าไม่มีการตัดบรรทัดหรือขึ้นบรรทัดใหม่โดยไม่ได้ตั้งใจ APT รองรับ.listรายการแบบดั้งเดิมและส่วน deb822 .sourcesดังนั้นอย่าคิดว่าทุกรายการที่ใช้งานอยู่จะอยู่ในsources.listไฟล์เดียว แยกที่เก็บข้อมูลของผู้จำหน่ายที่ไม่เกี่ยวข้องออกจากกันในระหว่างการวินิจฉัยปัญหา ปิดใช้งานแหล่งที่มาของบุคคลที่สามชั่วคราวเฉพาะในกรณีที่ URL ของแหล่งที่มานั้นเป็นสาเหตุของปัญหาเท่านั้น
5. แก้ไขรายการในคลังข้อมูล Pardus 23 ที่ผิดพลาดหรือล้าสมัย
เอกสารทางการของ Pardus เวอร์ชัน 23.4 ระบุแหล่งที่มาของแพ็กเกจดังต่อไปนี้ รายการแพ็กเกจไบนารีใช้deb; deb-srcรายการเหล่านี้ใช้สำหรับดึงแพ็กเกจซอร์สโค้ดและเป็นตัวเลือกเสริมสำหรับการติดตั้งซอฟต์แวร์ตามปกติ
deb http://depo.pardus.org.tr/pardus yirmiuc main contrib non-free non-free-firmware
deb-src http://depo.pardus.org.tr/pardus yirmiuc main contrib non-free non-free-firmware
deb http://depo.pardus.org.tr/pardus yirmiuc-deb main contrib non-free non-free-firmware
deb-src http://depo.pardus.org.tr/pardus yirmiuc-deb main contrib non-free non-free-firmware
deb http://depo.pardus.org.tr/guvenlik yirmiuc-deb main contrib non-free non-free-firmware
deb-src http://depo.pardus.org.tr/guvenlik yirmiuc-deb main contrib non-free non-free-firmware
บรรทัดเหล่านี้เป็นเพียงข้อมูลอ้างอิง ไม่ใช่คำสั่งให้คัดลอกไปวางทับไฟล์ที่มีอยู่แล้ว: แหล่งข้อมูลที่ซ้ำกันอาจทำให้เกิดคำเตือน และการติดตั้งอาจใช้รูปแบบที่รองรับแตกต่างกัน ก่อนอื่นให้สำรองข้อมูลการกำหนดค่าแหล่งที่มาก่อน:
backup="/root/apt-sources-backup-$(date +%F-%H%M%S)"
sudo mkdir -m 700 "$backup"
sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.d "$backup"/
หากไฟล์ใดไม่มีอยู่ในระบบของคุณ ให้คัดลอกไฟล์ที่มีอยู่ก่อน จากนั้นเปิดไฟล์ที่เกี่ยวข้องด้วยโปรแกรมแก้ไขข้อความโดยใช้สิทธิ์ผู้ดูแลระบบ เปรียบเทียบบรรทัด Pardus ที่ใช้งานอยู่กับรายการอย่างเป็นทางการ คอมเมนต์เฉพาะบรรทัดที่ไม่ถูกต้องหรือล้าสมัยโดยใส่เครื่องหมายคอม#เมนต์ไว้ที่ต้นบรรทัด และคงไว้ซึ่งรายการที่กำหนดค่าไว้อย่างถูกต้อง โดยเฉพาะอย่างยิ่ง ห้ามเปลี่ยนyirmiucเป็นbookworm, stable, หรือเวอร์ชัน Pardus อื่นเพื่อแก้ไขปัญหาการเชื่อมต่อ การใช้ชุดซอฟต์แวร์ที่แตกต่างกันอาจทำให้เวอร์ชันและส่วนประกอบของแพ็กเกจแตกต่างกันได้
หลังจากบันทึกแล้ว ให้รีเฟรชดัชนีอีกครั้ง หากพบข้อผิดพลาด 404 ให้ตรวจสอบ URL พื้นฐานทั้งหมดและชุดทดสอบในบรรทัดที่เกิดข้อผิดพลาดอีกครั้ง หากรายการอย่างเป็นทางการที่ถูกต้องยังคงแสดงข้อผิดพลาด 404 ให้ลองใหม่อีกครั้งในภายหลังหรือติดต่อฝ่ายสนับสนุนของ Pardus เนื่องจากที่เก็บข้อมูลระยะไกลอาจไม่สอดคล้องกันชั่วคราว
6. แก้ไขปัญหาเกี่ยวกับมิเรอร์ พร็อกซี หรือแคชในเครื่อง
หาก DNS สามารถแก้ไขได้และเว็บไซต์อื่นๆ ทำงานได้ แต่โฮสต์อย่างเป็นทางการหมดเวลา ให้ลองใหม่อีกครั้งหลังจากช่วงเวลาสั้นๆ คุณสามารถตรวจสอบว่าที่เก็บข้อมูลตอบสนองผ่าน HTTP หรือไม่ด้วยคำสั่ง `pip install repository` curlหากติดตั้งไว้แล้ว:
curl -I --connect-timeout 10 http://depo.pardus.org.tr/
การตอบสนองจากเว็บเซิร์ฟเวอร์ไม่ได้พิสูจน์ว่าชุดมัลแวร์ APT ทุกชุดพร้อมใช้งาน แต่การหมดเวลาบ่งชี้ถึงปัญหาการเชื่อมต่อ การกรอง หรือปัญหาเซิร์ฟเวอร์ชั่วคราว ในเครือข่ายของโรงเรียนหรือองค์กร ให้สอบถามว่าเครือข่ายนั้นต้องการพร็อกซีหรือไม่ หรือบล็อกที่เก็บแพ็กเกจหรือไม่ หลีกเลี่ยงการใช้เซิร์ฟเวอร์มิเรอร์ที่ไม่เป็นทางการ เว้นแต่ว่า Pardus จะระบุว่าเป็นเซิร์ฟเวอร์มิเรอร์ที่รองรับ และคุณสามารถตรวจสอบได้ว่าเซิร์ฟเวอร์นั้นให้บริการชุดมัลแวร์ที่ถูกต้องและมีเมตาเดตาที่ลงนามแล้ว
หากพบปัญหาแฮชไม่ตรงกันหรือการดาวน์โหลดหยุดชะงัก ให้ลองเรียกใช้งานsudo apt updateอีกครั้งหลังจากตรวจสอบการเชื่อมต่อแล้ว หากปัญหายังคงอยู่ ให้จดบันทึก URL ของที่เก็บข้อมูลและข้อผิดพลาด แล้วติดต่อฝ่ายสนับสนุนของ Pardus หรือผู้ดูแลระบบเครือข่าย อย่าลบข้อมูล/var/lib/apt/listsเป็นขั้นตอนแรก การลบดัชนีที่แคชไว้ไม่ได้แก้ไขปัญหาแหล่งที่มาผิดพลาดหรือเซิร์ฟเวอร์ที่ไม่สามารถเข้าถึงได้
7. เปิดใช้งานการตรวจสอบสิทธิ์ของที่เก็บข้อมูลไว้
APT ตรวจสอบเมตาเดตาของที่เก็บแพ็กเกจที่ลงนามแล้ว เพื่อตรวจจับดัชนีแพ็กเกจที่ถูกแก้ไขหรือไม่ได้ตรวจสอบความถูกต้อง หากคุณเห็นข้อความNO_PUBKEY“ที่เก็บแพ็กเกจไม่ได้ลงนาม” หรือคำเตือนเกี่ยวกับคีย์หมดอายุ โปรดตรวจสอบให้แน่ใจว่าคุณใช้ URL ของที่เก็บแพ็กเกจ Pardus อย่างเป็นทางการและชุดโปรแกรมที่ถูกต้อง จากนั้นตรวจสอบเวลาและลองใหม่อีกครั้ง สำหรับการติดตั้ง Pardus ที่ใช้งานได้ตามปกติ ให้ใช้เส้นทางการอัปเดตแพ็กเกจและคีย์ริงที่รองรับของระบบปฏิบัติการ หรือเอกสารประกอบของ Pardus สำหรับขั้นตอนการเปลี่ยนคีย์ที่ถูกต้อง
อย่าใช้--allow-unauthenticated, trusted=yes, หรือตัวเลือก insecure-repository เป็นวิธีแก้ปัญหาทั่วไป ตัวเลือกเหล่านั้นจะลดประสิทธิภาพการป้องกันของ APT และอาจซ่อนการเชื่อมต่อที่ถูกบุกรุกหรือแหล่งที่มาที่กำหนดค่าไม่ถูกต้อง คู่มือความปลอดภัยของ Debian APT อธิบายว่าไฟล์เก็บถาวรที่ไม่ได้ลงนามจะถูกปฏิเสธโดยค่าเริ่มต้น และไม่แนะนำอย่างยิ่งให้บังคับใช้ หากข้อผิดพลาดยังคงอยู่หลังจากตรวจสอบ URL, suite และเวลาแล้ว ให้บันทึกเอาต์พุตทั้งหมดและขอให้ฝ่ายสนับสนุนของ Pardus ยืนยันคำแนะนำคีย์ลงนามปัจจุบันแทนที่จะนำเข้าคีย์ที่ไม่ได้รับการตรวจสอบ
8. ตรวจสอบว่ามีการใช้ backport ของ Pardus 23 หรือไม่
หากบรรทัดที่เกิดข้อผิดพลาดชี้ไปที่ <repository> /backportsแสดงว่าเป็นแหล่งข้อมูลที่แยกต่างหากจาก repository มาตรฐานของ Pardus Pardus ระบุในเอกสาร Pardus 23 backports suite ว่า <repository> yirmiuc-backportsและระบุว่าแพ็กเกจ backported ไม่ได้รับการทดสอบในระดับเดียวกับแพ็กเกจเวอร์ชันเสถียร หากคุณเปิดใช้งาน backports โดยตั้งใจ ให้เปรียบเทียบบรรทัดนั้นกับคำแนะนำอย่างเป็นทางการของ Pardus เกี่ยวกับ backports หากคุณไม่ได้ใช้งาน ให้ปิดใช้งานเฉพาะรายการ backports นั้นหลังจากสำรองข้อมูลการกำหนดค่าแล้ว อย่าลบ repository มาตรฐานเพื่อระงับข้อผิดพลาด
ตรวจสอบว่าการแก้ไขได้ผลหรือไม่
เรียกใช้คำสั่งอัปเดตอีกครั้ง:
sudo apt update
การทำงานที่สำเร็จลุล่วงหมายถึงการทำงานที่ไม่มีข้อผิดพลาดในการดึงข้อมูลจากแหล่งเก็บข้อมูล ข้อผิดพลาด DNS ข้อผิดพลาด 404 คำเตือนเกี่ยวกับลายเซ็น หรือข้อผิดพลาดเกี่ยวกับดัชนีแพ็กเกจ APT อาจแสดงHitดัชนีที่ใช้งานอยู่แล้วและGetดัชนีที่กำลังดาวน์โหลด ซึ่งป้ายกำกับเหล่านั้นไม่ใช่ข้อผิดพลาด ตรวจสอบว่าการค้นหาแพ็กเกจทำงานได้โดยใช้คำค้นหาที่ไม่เป็นอันตราย เช่นapt-cache policyหรือค้นหาแพ็กเกจที่คุณคาดว่าจะมีอยู่ อย่าเริ่มการอัปเกรดขนาดใหญ่จนกว่าผลลัพธ์การอัปเดตจะสะอาดหมดจด
หากเกิดข้อผิดพลาดเดิมซ้ำอีก ให้บันทึก URL และข้อความที่ทำให้เกิดข้อผิดพลาดอย่างละเอียด พร้อมทั้งตรวจสอบว่าการแก้ไข DNS ทำงานได้หรือไม่ และไฟล์ต้นทางใดที่ใช้งานอยู่ซึ่งมีรายการนั้นอยู่ หลักฐานเหล่านี้จะช่วยให้ระบุได้ง่ายขึ้นว่าสาเหตุที่เหลืออยู่เป็นปัญหาเครือข่าย ปัญหามิเรอร์ชั่วคราว หรือการกำหนดค่าที่เก็บข้อมูลที่ต้องได้รับการยืนยันจาก Pardus
เอกสารอ้างอิงอย่างเป็นทางการ