วิธีปิดการใช้งาน/ล็อคหรืออัพเดตแพ็คเกจบัญชีดำโดยใช้ Apt Tool
APT หมายถึง Advanced Packaging Tool เป็นอีกหนึ่งตัวจัดการแพ็คเกจที่พบในระบบที่ใช้ Linux เริ่มแรกได้รับการออกแบบให้เป็นส่วนหน้าสำหรับ dpkg เพื่อทำงานกับแพ็คเกจ .deb apt ประสบความสำเร็จในการแสดงการมองเห็นของเขาบน Mac OS, Open Solaris ฯลฯ
ต้องการเรียนรู้และเชี่ยวชาญเกี่ยวกับคำสั่ง APT และ DPKG เพื่อจัดการการจัดการแพ็คเกจ Debian จากนั้นใช้บทความเชิงลึกของเราซึ่งจะครอบคลุมมากกว่า 30+ ตัวอย่างบนเครื่องมือทั้งสอง
ในบทความนี้ เราจะดูเทคนิคต่างๆ ในการปิดการใช้งาน/ล็อคแพ็คเกจจากการติดตั้ง อัพเกรด และลบใน Debian Linux และอนุพันธ์ของมัน เช่น Ubuntu และ Linux Mint
1. ปิดการใช้งาน/ล็อคแพ็คเกจโดยใช้ 'apt-mark' พร้อมตัวเลือกพัก/ยกเลิกการพักสาย
คำสั่ง apt-mark จะทำเครื่องหมายหรือยกเลิกการทำเครื่องหมายชุดซอฟต์แวร์ว่ามีการติดตั้งโดยอัตโนมัติ และใช้กับตัวเลือก พัก หรือ ยกเลิกการพัก
- ระงับ – ตัวเลือกนี้ใช้เพื่อทำเครื่องหมายแพ็กเกจเป็นการระงับ ซึ่งจะบล็อกไม่ให้ติดตั้ง อัปเกรด หรือลบแพ็กเกจ
- ยกเลิกการระงับ – ตัวเลือกนี้ใช้เพื่อลบการระงับที่กำหนดไว้ก่อนหน้านี้ในแพ็คเกจ และอนุญาตให้ติดตั้ง อัปเกรด และลบแพ็คเกจ
ตัวอย่างเช่น ในการจัดทำแพ็คเกจแจ้งว่า apache2
ไม่พร้อมใช้งานสำหรับการติดตั้ง การอัปเกรด หรือถอนการติดตั้ง คุณสามารถใช้คำสั่งต่อไปนี้ที่เทอร์มินัลที่มีสิทธิ์ใช้งานรูท:
apt-mark hold apache2
หากต้องการทำให้แพ็คเกจนี้พร้อมสำหรับการอัปเดต เพียงแทนที่ 'ระงับ' ด้วย 'ยกเลิกการระงับ'
apt-mark unhold apache2
การบล็อกการอัปเดตแพ็คเกจโดยใช้ไฟล์การตั้งค่า APT
อีกวิธีในการบล็อกการอัปเดตของแพ็คเกจเฉพาะคือการเพิ่มรายการใน /etc/apt/preferences
หรือ /etc/apt/preferences.d/official-package-repositories.pref
ไฟล์ ไฟล์นี้มีหน้าที่รับผิดชอบในการอัปเดตหรือบล็อกการอัปเดตแพ็คเกจบางอย่างตามลำดับความสำคัญที่ผู้ใช้ระบุ
หากต้องการบล็อกแพ็คเกจ คุณเพียงแค่ต้องป้อนชื่อ คุณสมบัติเพิ่มเติม และลำดับความสำคัญที่คุณต้องการดำเนินการ ที่นี่ลำดับความสำคัญ < 1
จะบล็อกแพ็คเกจ
สำหรับการบล็อกแพ็คเกจใดๆ เพียงกรอกรายละเอียดลงในไฟล์ /etc/apt/preferences
ดังนี้:
Package: <package-name> (Here, '*' means all packages)
Pin: release *
Pin-Priority: <less than 0>
ตัวอย่างเช่น หากต้องการบล็อกการอัปเดตสำหรับแพ็คเกจ apache2 ให้เพิ่มรายการตามที่แสดง:
Package: apache2
Pin: release o=Ubuntu
Pin-Priority: 1
เราสามารถใช้ตัวเลือกอื่นกับคีย์เวิร์ด release เพื่อระบุแพ็คเกจเพิ่มเติมที่เราใช้ลำดับความสำคัญของพิน คำหลักเหล่านั้นคือ:
- ก -> เก็บถาวร
- c -> ส่วนประกอบ
- o -> ต้นกำเนิด
- l -> ป้ายกำกับ
- n -> สถาปัตยกรรม
ชอบ :
Pin: release o=Debian,a=Experimental
จะหมายถึงการดึงแพ็คเกจที่ระบุจากไฟล์เก็บถาวรทดลองแพ็คเกจ Debian
ขึ้นบัญชีดำการอัปเดตแพ็คเกจโดยใช้ไฟล์ APT Autoremove
อีกวิธีในการขึ้นบัญชีดำแพ็คเกจจากการติดตั้งคือการอัปเดตรายการในไฟล์ใดไฟล์หนึ่งที่อยู่ในไดเร็กทอรี /etc/apt/apt.conf.d/
ซึ่งก็คือ 01autoremove
ไฟล์ตัวอย่างแสดงอยู่ด้านล่าง:
APT
{
NeverAutoRemove
{
"^firmware-linux.*";
"^linux-firmware$";
};
VersionedKernelPackages
{
# linux kernels
"linux-image";
"linux-headers";
"linux-image-extra";
"linux-signed-image";
# kfreebsd kernels
"kfreebsd-image";
"kfreebsd-headers";
# hurd kernels
"gnumach-image";
# (out-of-tree) modules
".*-modules";
".*-kernel";
"linux-backports-modules-.*";
# tools
"linux-tools";
};
Never-MarkAuto-Sections
{
"metapackages";
"restricted/metapackages";
"universe/metapackages";
"multiverse/metapackages";
"oldlibs";
"restricted/oldlibs";
"universe/oldlibs";
"multiverse/oldlibs";
};
};
ตอนนี้ หากต้องการขึ้นบัญชีดำแพ็คเกจใดๆ เพียงป้อนชื่อแพ็คเกจใน Never-MarkAuto-Sections
เพียงป้อนชื่อของแพ็คเกจต่อท้ายใน Never-MarkAuto-Section
แล้วบันทึกและปิดไฟล์ สิ่งนี้จะบล็อกการค้นหาการอัปเดตเพิ่มเติมของแพ็คเกจนั้น
ตัวอย่างเช่น หากต้องการขึ้นบัญชีดำแพ็คเกจจากการอัพเดต ให้เพิ่มรายการดังที่แสดง:
Never-MarkAuto-Sections
{
"metapackages";
"restricted/metapackages";
"universe/metapackages";
"multiverse/metapackages";
"oldlibs";
"restricted/oldlibs";
"universe/oldlibs";
"multiverse/oldlibs";
"apache2*";
};
};
การเลือกแพ็คเกจแบบกำหนดเองสำหรับการอัพเดต
อีกทางเลือกหนึ่งสำหรับสิ่งนี้คือเลือกสิ่งที่คุณต้องการอัปเดต เครื่องมือ apt ให้อิสระแก่คุณในการเลือกสิ่งที่คุณต้องการอัปเดต แต่สำหรับสิ่งนี้ คุณควรมีความรู้เกี่ยวกับแพ็คเกจทั้งหมดที่พร้อมสำหรับการอัปเกรด
สำหรับสิ่งนี้ ชุดคำสั่งต่อไปนี้สามารถพิสูจน์ได้ว่ามีประโยชน์:
ก. เพื่อแสดงรายการแพ็คเกจที่มีการอัปเดตที่รอดำเนินการ
apt-get -u -V upgrade
ข. เพื่อติดตั้งเฉพาะแพ็คเกจที่เลือก
apt-get --only-upgrade install <package-name>
บทสรุป
ในบทความนี้ เราได้อธิบายวิธีการปิดใช้งาน/บล็อกหรือการอัปเดตแพ็คเกจบัญชีดำโดยใช้วิธี APT สองสามวิธี หากคุณทราบวิธีอื่นที่ต้องการ โปรดแจ้งให้เราทราบผ่านความคิดเห็น หรือหากคุณกำลังมองหาคำสั่ง yum เพื่อปิด/ล็อกการอัปเดตแพ็คเกจ โปรดอ่านบทความด้านล่าง