apt vs. apt-get: อะไรคือความแตกต่างบน Linux?
เผยแพร่แล้ว: 2022-06-16 ทำไมลินุกซ์ที่ใช้ Debian ถึงมี apt
และ apt-get
apt
แทนที่ apt-get
หรือมีวัตถุประสงค์ต่างกันหรือไม่? เราอธิบายความสัมพันธ์ระหว่างสองคำสั่งนี้
ระบบการจัดการแพ็คเกจเดเบียน
ความพยายามหลักในการสร้างการแจกจ่าย Linux คือการออกแบบและสร้างระบบการจัดการแพ็คเกจ ผู้ใช้ของคุณต้องมีวิธีการติดตั้งและถอนการติดตั้งแพ็คเกจซอฟต์แวร์ ที่ต้องใช้ซอฟต์แวร์เพื่อดึงไฟล์แพ็คเกจจากที่เก็บซอฟต์แวร์ของคุณและติดตั้งอย่างถูกต้องบนคอมพิวเตอร์ของผู้ใช้
นี่ไม่ใช่กิจการเล็กๆ แม้แต่การวางวิศวกรรมซอฟต์แวร์ไว้ด้านเดียว การโฮสต์ที่เก็บซอฟต์แวร์ก็ต้องใช้เวลา ความพยายาม และค่าใช้จ่าย นั่นเป็นสาเหตุหนึ่งที่ทำให้ลีนุกซ์รุ่น “ใหม่” จำนวนมากมาจากการแจกจ่ายลีนุกซ์ที่มีอยู่.
สิ่งนี้นำไปสู่ตระกูลหรือลำดับวงศ์ตระกูลของลีนุกซ์รุ่นเช่นการแจกแจงแบบเดเบียน, การแจกแจงแบบเรดแฮท, การแจกแจงแบบอิง Arch เป็นต้น
ตระกูล Debian ของการแจกแจง—รวมถึง Ubuntu และการแจกแจงที่มาจาก Ubuntu—ทั้งหมด—ใช้ Debian Package Manager สิ่งนี้ใช้ไฟล์แพ็คเกจที่มีนามสกุลไฟล์ “.deb” ซึ่งเรียกว่าไฟล์ DEB ไฟล์ DEB เป็นไฟล์บีบอัดที่มีไฟล์เก็บถาวรอื่นๆ ไฟล์เก็บถาวรประกอบด้วยไฟล์เรียกทำงาน หน้าคน ไลบรารี และอื่นๆ ของแอพพลิเคชัน
การติดตั้งซอฟต์แวร์จากไฟล์ DEB หมายถึงการแตกไฟล์ส่วนประกอบเหล่านี้ทั้งหมดและวางไว้ในตำแหน่งที่ถูกต้องบนคอมพิวเตอร์ของคุณ นอกจากนี้ยังต้องมีการโต้ตอบกับระบบปฏิบัติการและสภาพแวดล้อมเดสก์ท็อปเพื่อให้แอปพลิเคชันปรากฏในการค้นหาแอปพลิเคชันและสามารถเพิ่มไอคอนลงในท่าเรือหรือเมนูระบบได้
คำสั่ง apt-get
และ apt
ทั้งสองทำอย่างนั้น แต่ทำไมเราถึงมีสองคำสั่งสำหรับสิ่งเดียวกัน?
สายการบังคับบัญชา
แพ็คเกจที่ทำการติดตั้งจริง ๆ เรียกว่า dpkg
จริง ๆ แล้วมันเป็นตระกูลของคำสั่งรวมถึง dpkg-split
, dpkg-trigger
และ dpkg-divert
เครื่องมือเหล่านี้เรียกว่า (ถ้าและตามความจำเป็น) โดยเครื่องมือในชุดเครื่องมือ Advanced Package Tool หรือ APT APT คือชุดเครื่องมืออีกชุดหนึ่ง รวมทั้ง apt-get
, apt-cache
และ apt
คำสั่ง dpkg
ถือเป็นคำสั่งระดับต่ำ นอกเหนือจากการโต้ตอบที่ง่ายที่สุด มันกลายเป็นเรื่องที่ซับซ้อนมากด้วยตัวเลือกมากมาย คำสั่ง apt-get
ทำหน้าที่เป็นส่วนหน้าของชุดคำสั่ง dpkg
สิ่งนี้ทำให้เรื่องง่ายขึ้นมาก apt-get
การออกแบบให้เป็นคำสั่งที่ผู้ใช้เผชิญ ไม่ใช่คำสั่งพื้นหลังระดับต่ำ ถึงกระนั้นก็ตาม คำสั่งอื่นที่เรียกว่า apt-cache
ถูกใช้เพื่อแสดงข้อมูลต่อผู้ใช้ แม้ว่ามีบทบาทที่ต้องเผชิญหน้ากับมนุษย์ก็ตาม
คำสั่ง apt
เป็นอีกวิธีหนึ่งในการ "พูดคุย" กับ dpkg
ผ่านเครื่องมือบรรทัดคำสั่งที่เข้าถึงได้ง่ายขึ้นและใช้งานง่าย มีชุดย่อยของคุณลักษณะของ apt-get
แต่เป็นชุดย่อยขนาดใหญ่และมีคุณสมบัติที่ใช้กันทั่วไปทั้งหมด และยังมีฟังก์ชันจาก apt-cache
Linux Mint ต้องการการกล่าวถึงเป็นพิเศษที่นี่ ผู้ดูแล Linux Mint ได้พัฒนาเวอร์ชันของตัวเองของ apt
ซึ่งเป็นเครื่องห่อหุ้ม Python สำหรับ apt-get
นั่นไม่ใช่ apt
ที่เรากำลังพูดถึงที่นี่ เรากำลังพูดถึง Debian apt
หลักซึ่งเปิดตัวในปี 2014 และได้รับความสนใจและดึงดูดใจในข้อผู้ใช้เมื่อรวมอยู่ใน Ubuntu 16.04 ในปี 2559
ความแตกต่างระหว่าง apt และ apt-get
ดังนั้น dpkg
จึงเป็นแอปพลิเคชันพื้นหลังระดับต่ำ คำสั่ง apt-get
เป็นอินเทอร์เฟซที่มีคุณสมบัติครบถ้วนแต่เรียบง่ายสำหรับ dpkg
และ apt
เป็นเวอร์ชันที่ใช้งานง่ายกว่า แต่มีการดึงกลับของ apt-get
เล็กน้อย
แต่ apt-get
และ apt
ให้มากกว่าอินเทอร์เฟซที่ง่ายสำหรับ dpkg
พวกเขาทำในสิ่งที่ dpkg
ไม่ทำ พวกเขาจะดึงไฟล์จากที่เก็บและจะพยายามช่วยเหลือเกี่ยวกับการขึ้นต่อกันที่ขาดหายไปและข้อขัดแย้ง
ในทางกลับกัน คำสั่ง apt
ทำบางสิ่งที่ apt-get
ไม่ทำ ซึ่งจะให้ข้อมูลเพิ่มเติมเกี่ยวกับประเภทที่ผู้ใช้ทั่วไปต้องการเห็นระหว่างการติดตั้ง และระงับข้อมูลที่คลุมเครือมากขึ้นซึ่ง apt-get
แสดง apt
ให้การตอบสนองด้วยภาพที่เหนือกว่า และใช้การเน้นสีและแถบความคืบหน้าในหน้าต่างเทอร์มินัล
มีคำสั่งทั่วไปบางอย่างระหว่าง apt
และ apt-get
คำสั่งทั้งหมดเหล่านี้สามารถนำหน้าด้วย apt
หรือ apt-get
และจะมีลักษณะเหมือนกัน:
- ติด ตั้งชื่อแพ็คเกจ : ติดตั้งแพ็คเกจ
- ลบ ชื่อแพ็คเกจ : ลบ (ถอนการติดตั้ง) แพ็คเกจ
- purge packagename : ลบแพ็คเกจและไฟล์การกำหนดค่า
- update packagename : อัพเดตข้อมูลที่เก็บ
- อัปเกรด : อัปเดตแพ็คเกจทั้งหมด
- autoremove : ลบไลบรารีและแพ็คเกจอื่น ๆ ที่ไม่ต้องการอีกต่อไป
ตัวเลือก apt full-upgrade
จะแทนที่ตัวเลือกการอัปเกรด apt-get dist-upgrade
เหล่านี้เป็นคำสั่งใหม่สำหรับ apt
:
- apt search : ค้นหาชื่อแพ็คเกจในที่เก็บ สิ่งนี้เหมือนกับ
apt-cache search
- apt show : แสดงข้อมูลเกี่ยวกับแพ็คเกจ สิ่งนี้เหมือนกับ
apt-cache show
- apt list option : แสดงรายการแพ็คเกจที่ติดตั้งหรืออัพเกรดได้
- apt edit-sources : แก้ไขรายการที่เก็บโดยตรงที่
apt
ค้นหาแพ็คเกจ
การติดตั้งแอพพลิเคชั่น
คุณสามารถใช้ apt search
เพื่อดูว่ามีแพ็คเกจอยู่ในที่เก็บหรือตรวจสอบว่าคุณมีชื่อที่ถูกต้องสำหรับแพ็คเกจหรือไม่ สมมติว่าคุณต้องการติดตั้ง Scribus แต่คุณไม่ทราบชื่อแพ็คเกจ คุณอาจลองมองหา scribus-desktop
apt ค้นหา scribus-เดสก์ท็อป
การค้นหานั้นไม่พบอะไรเลย เราจะลองอีกครั้งโดยใช้คำใบ้การค้นหาที่สั้นและกว้างกว่า
apt ค้นหา scribus
ส่งคืน Hit หลายรายการ และเราจะเห็นว่ามีหนึ่งชื่อ "scribus" และดูเหมือนว่าเป็นแพ็คเกจหลักสำหรับแอปพลิเคชันการเผยแพร่บนเดสก์ท็อป Scribus คำสั่ง apt show
จะให้รายละเอียดเพิ่มเติมแก่เรา
apt แสดง scribus
เราได้รับข้อมูลเกี่ยวกับแพ็คเกจ รวมถึงสิ่งที่จะติดตั้งและคำอธิบายของซอฟต์แวร์
นอกจากนี้ยังแนะนำแพ็คเกจอื่นๆ ที่อาจจำเป็น ขึ้นอยู่กับความต้องการของเรา
ในการติดตั้งแพ็คเกจเราจำเป็นต้องใช้ sudo
sudo apt ติดตั้ง scribus
ไฟล์ถูกดึงมาจากที่เก็บ ไฟล์ที่กำลังเรียกข้อมูลจะถูกเน้นเป็นสีน้ำตาล
เมื่อเรียกไฟล์แล้ว ไฟล์เหล่านั้นจะถูกติดตั้ง ความคืบหน้าในการติดตั้งจะแสดงเป็นเปอร์เซ็นต์ที่แสดงเป็นตัวเลขและเป็นแถบแสดงความคืบหน้า
คำสั่งอื่นๆ
คำสั่ง apt list
และ apt edit-sources
เป็นตัวเลือกใน apt
ที่ไม่มีอยู่ใน apt-get
คำสั่ง apt list
สามารถใช้กับตัวเลือก --installed
หรือ --upgradeable
เพื่อดูแพ็คเกจที่ติดตั้งบนคอมพิวเตอร์ของคุณ และแพ็คเกจใดบ้างที่สามารถอัพเกรดได้
หากต้องการดูรายการแอปพลิเคชันที่ติดตั้งบนคอมพิวเตอร์ของคุณให้ใช้:
รายการ apt -- ติดตั้งแล้ว
เมื่อเลื่อนดูผลลัพธ์ เราจะเห็นสองรายการสำหรับแอปพลิเคชัน Scribus ที่เพิ่งติดตั้งใหม่
หากต้องการดูว่าสามารถอัปเกรดแอปพลิเคชันที่ติดตั้งไว้ได้หรือไม่ ให้ใช้ตัวเลือก --upgradeable
รายการ apt --upgradeable
คำสั่ง apt
ยังจัดเตรียมวิธีให้คุณแก้ไขข้อมูลที่จัดเก็บเกี่ยวกับที่เก็บ apt
ค้นหาแพ็คเกจ ทำสิ่งนี้ก็ต่อเมื่อคุณรู้ว่าคุณกำลังทำอะไรอยู่
sudo apt แก้ไขแหล่งที่มา
คำสั่งนี้เปิดตัวแก้ไขเริ่มต้นของคุณและโหลดไฟล์ที่มีข้อมูลที่เก็บ
ฉันควรใช้ apt หรือ apt-get?
คำสั่ง apt-get
ไม่ได้รับการอัพเดตบ่อยๆ และนั่นก็เป็นสิ่งที่ดี ต้องรักษาความเข้ากันได้ย้อนหลัง ความเข้ากันได้แบบย้อนหลังไม่ได้เป็นปัญหาสำหรับ apt
ถือว่าเป็นคำสั่งที่ผู้ใช้เผชิญ
สำหรับการใช้งานประจำวัน ใช้ apt
หากคุณเขียนสคริปต์เกี่ยวกับการติดตั้งแพ็คเกจ ให้ใช้ apt-get
ที่ช่วยให้คุณมีโอกาสมากที่สุดในการพกพาและความเข้ากันได้ในสคริปต์ของคุณ
ที่เกี่ยวข้อง: คู่มือเริ่มต้นสำหรับการเขียนสคริปต์เชลล์: พื้นฐาน