ปัญหา
ระบบนี้สามารถทำงานได้:
sudo apt update
แต่เกิดข้อผิดพลาดในขั้นตอน:
sudo apt dist-upgrade
พร้อมด้วย:
403 Forbidden
https://artifacts.elastic.co/packages/9.x/apt/.../elasticsearch-9.4.2-amd64.deb
นั่นหมายความว่า รายชื่อแพ็กเกจได้รับการอัปเดตสำเร็จแล้ว แต่ APT ไม่สามารถดาวน์โหลดไฟล์อาร์ไคฟ์แพ็กเกจ Elasticsearch ที่ระบุได้.
ทำไมเรื่องนี้จึงเกิดขึ้น
นี่ไม่ใช่ปัญหาเกี่ยวกับกระจก Ubuntu.
หลักฐานสำคัญ:
apt updateประสบความสำเร็จ.- ความล้มเหลวนั้นเกิดจากเพียง
artifacts.elastic.co. - คำขอที่ล้มเหลวนั้นใช้ IPv6:
2600:1901:0:1d7::. - การส่งคำขอโดยตรงไปยัง URL ของแพ็กเกจเดียวกันได้สำเร็จผ่าน IPv4.
ดังนั้น สาเหตุหลักคือปัญหาเส้นทางเครือข่าย/IPv6 ไปยัง repositori Elasticsearch ไม่ใช่เพราะแพ็กเกจมีปัญหาหรือการตั้งค่า repositori ไม่ถูกต้อง.
พบวิธีแก้ปัญหาแล้ว
วิธีแก้ไขชั่วคราว
บังคับให้ APT ใช้ IPv4 สำหรับการดำเนินการปัจจุบัน:
sudo apt -o Acquire::ForceIPv4=true update
sudo apt -o Acquire::ForceIPv4=true dist-upgrade
วิธีนี้ได้หลีกเลี่ยงเส้นทาง IPv6 ที่ไม่ทำงาน และทำให้การดาวน์โหลดแพ็กเกจสำเร็จ.
การแก้ไขอย่างถาวร
รักษาการตั้งค่าให้ใช้ IPv4 เท่านั้นสำหรับ APT:
echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4
จากนั้นให้ดำเนินการอัปเดตตามปกติอีกครั้ง:
sudo apt update
sudo apt dist-upgrade
ความหมายของสิ่งนี้คือ
- ระบบเองยังทำงานได้ปกติพอที่จะอัปเดตข้อมูลเมตาดาต้าของแพ็กเกจ.
- ข้อผิดพลาดดังกล่าวถูกระบุว่าเป็นปัญหาในการดาวน์โหลดแพ็กเกจ Elasticsearch ผ่าน IPv6.
- การใช้ IPv4 เป็นวิธีแก้ปัญหาที่ปฏิบัติได้จริง เมื่อสามารถเข้าถึงรีโพสิตอรีผ่าน IPv4 แต่ไม่สามารถเข้าถึงผ่าน IPv6 ได้.
การติดตามผล (ตามความจำเป็น)
เพื่อหาวิธีแก้ปัญหาที่สะอาดและยั่งยืนในระยะยาว ให้ตรวจสอบการเชื่อมต่อ IPv6 บนเครื่องโฮสต์หรือเครือข่าย แต่ในขณะนี้ ปัญหาเร่งด่วนสามารถแก้ไขได้โดยการบังคับให้ APT ใช้ IPv4.
ใส่ความเห็น