การแก้ไขปัญหาการอัปเกรด apt dist-upgrade ที่ล้มเหลวจากคลัง Elasticsearch

ปัญหา

ระบบนี้สามารถทำงานได้:

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.

หน้านี้มีประโยชน์หรือไม่?

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *