ค้นหาเว็บไซต์

วิธีปิดการใช้งาน/ล็อคหรืออัพเดตแพ็คเกจบัญชีดำโดยใช้ 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 จะทำเครื่องหมายหรือยกเลิกการทำเครื่องหมายชุดซอฟต์แวร์ว่ามีการติดตั้งโดยอัตโนมัติ และใช้กับตัวเลือก พัก หรือ ยกเลิกการพัก

  1. ระงับ – ตัวเลือกนี้ใช้เพื่อทำเครื่องหมายแพ็กเกจเป็นการระงับ ซึ่งจะบล็อกไม่ให้ติดตั้ง อัปเกรด หรือลบแพ็กเกจ
  2. ยกเลิกการระงับ – ตัวเลือกนี้ใช้เพื่อลบการระงับที่กำหนดไว้ก่อนหน้านี้ในแพ็คเกจ และอนุญาตให้ติดตั้ง อัปเกรด และลบแพ็คเกจ

ตัวอย่างเช่น ในการจัดทำแพ็คเกจแจ้งว่า 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 เพื่อระบุแพ็คเกจเพิ่มเติมที่เราใช้ลำดับความสำคัญของพิน คำหลักเหล่านั้นคือ:

  1. -> เก็บถาวร
  2. c -> ส่วนประกอบ
  3. o -> ต้นกำเนิด
  4. l -> ป้ายกำกับ
  5. 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 เพื่อปิด/ล็อกการอัปเดตแพ็คเกจ โปรดอ่านบทความด้านล่าง