การอัปเดตไคลเอนต์ทำให้อุโมงค์ขาด เวอร์ชันเก่ายังทำงานอยู่ และนั่นเหลือทางแก้ที่ชัดเจนสองทาง ทางหนึ่งตรึงแพ็กเกจไว้ที่เดิมและรอการแก้ไข อีกทางหนึ่งเดินหน้าไปสู่การจัดวางที่รองรับทันที ทั้งสองไม่ปลอดภัยเท่ากัน และไม่มีทางใดเป็นกลยุทธ์การบำรุงรักษาที่ไม่มีทางออก เปรียบเทียบกันว่าจริง ๆ แล้วแต่ละทางหยุดอะไรไว้ก่อนเลือก

สองทางแก้สำหรับรีเกรสชันเดียว

การตรึงแพ็กเกจทำให้เวอร์ชันที่ใช้งานได้ยังติดตั้งอยู่และกันไม่ให้ APT เคลื่อนย้ายมัน วิธีนี้ซื้อเวลา รักษาผู้ใช้ให้เชื่อมต่อ และปล่อยบั๊กพื้นฐานไว้ไม่แตะต้อง การเดินหน้าหมายถึงการหาเวอร์ชันที่รองรับซึ่งแก้ไขรีเกรสชัน หรือเปลี่ยนเจ้าของการเชื่อมต่อไปเป็นสิ่งที่ดิสทริบิวชันยังดูแลอยู่ วิธีนี้ต้องลงแรงมากกว่าในตอนแรกและขจัดความเสี่ยงที่คงอยู่

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

ตรึงความล้มเหลวให้แน่ก่อนเลือกทางใดทางหนึ่ง

การอัปเดตแกน NetworkManager การอัปเดตปลั๊กอิน VPN และรีเกรสชันของตัวช่วยแก้ไขชื่อ ดูเหมือนกันจากมุมของผู้ใช้และมีตัวเลือกย้อนกลับต่างกัน บันทึกแพ็กเกจ เวอร์ชัน และข้อผิดพลาดใหม่ตัวแรกให้แม่นยำ

apt-cache policy network-manager network-manager-openvpn
dpkg -l | grep -E 'network-manager|openvpn|wireguard'

เมทาดาทาแพ็กเกจอาจล้าสมัยได้หากยังไม่ได้รีเฟรชรายการ จึงอ่านเป็นเพียงเบาะแสและยืนยันกับเวอร์ชันที่ติดตั้งจริง อย่าเอาเวอร์ชันเป้าหมายจากโพสต์ในฟอรัม สตริงเวอร์ชันเดียวกันจากอีกชุดเผยแพร่อาจมีชุดการพึ่งพาต่างกัน

เปรียบเทียบสิ่งที่การตรึงครอบคลุม

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

sudo apt-get -s install network-manager=1.42.4-1
apt-mark showhold

จำลองการดาวน์เกรดก่อนและอ่านการเปลี่ยนแปลงที่เสนอให้ครบ การดาวน์เกรดที่ลบการพึ่งพาที่เดสก์ท็อปต้องการเป็นเหตุการณ์อีกอย่าง และการจำลองเป็นที่ที่ถูกที่สุดในการค้นพบ ถ้าการตรึงเป็นขอบเขตชั่วคราวที่ถูกต้องจริง ๆ ให้เขียนเป็นการตัดสินใจที่มีเจ้าของ เหตุผล และเงื่อนไขการถอดออก การตรึงที่ไม่มีเจ้าของกลายเป็นโครงสร้างพื้นฐานถาวรที่ไม่มีใครกล้าแตะ

เปรียบเทียบเส้นทางออก

เส้นทางไปข้างหน้าคือการแก้ไขจากดิสทริบิวชันหรือผู้จำหน่าย ซึ่งใช้หลังจากตรวจสอบบนการเชื่อมต่ออิสระแล้ว วิธีนี้ทำให้ระบบอยู่ในการไหลอัปเดตที่รองรับและปิดการเปิดเผย เส้นทางย้ายระบบจะแทนที่ไคลเอนต์หรือโฮสต์ด้วยสิ่งที่ดิสทริบิวชันยังดูแลอยู่ ต้องลงแรงมากกว่าและบ่อยครั้งเป็นคำตอบที่ซื่อสัตย์เพียงอย่างเดียวเมื่อองค์ประกอบที่เกิดรีเกรสชันไม่มีเวอร์ชันที่แก้ไขในสาขานั้น

sudo apt-mark unhold network-manager
sudo apt update
sudo apt full-upgrade

ไม่ว่าคุณจะเลือกทางออกใด ตรวจสอบโปรไฟล์ที่แน่นอน เส้นทางการยืนยันตัวตน เส้นทาง พฤติกรรม DNS และการเชื่อมต่อใหม่ก่อนประกาศว่าเสร็จ อุโมงค์ที่ขึ้นได้ครั้งเดียวไม่เหมือนกับอุโมงค์ที่ทนต่อการพัก เครือข่ายเปลี่ยน และรีบูต เก็บหลักฐานความล้มเหลวไว้สำหรับรายงานบั๊ก: เวอร์ชันแพ็กเกจ ข้อความจากเจอร์นัล โครงสร้างโปรไฟล์ที่ถอดความลับออกแล้ว อย่าแนบคีย์ส่วนตัวหรือข้อมูลรับรองเพื่อให้รายงานสมบูรณ์ขึ้น

สิ่งที่บันทึกต้องมี

เขียนการตัดสินใจเป็นสี่บรรทัด: อะไรเกิดรีเกรสชัน อะไรถูกตรึงหรือเปลี่ยน ใครเป็นเจ้าของสถานะชั่วคราว และอะไรถอดมันออก เพิ่มการตรวจสอบที่คุณทำ เพราะวิศวกรคนถัดไปจะทำซ้ำ

การตรึงที่มีวันออกคือขอบเขตการย้อนกลับที่จัดการได้ การตรึงที่ไม่มีวันออกคือการดาวน์เกรดที่ไม่ได้อธิบายซึ่งกลายเป็นส่วนหนึ่งของโครงสร้างพื้นฐานอย่างเงียบ ๆ

บทความที่เกี่ยวข้อง