Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีแสดง Dependencies ของแพ็กเกจใน Ubuntu

ไม่เหมือน Windows, macOS และ Android ซอฟต์แวร์บน Ubuntu - และ Linux โดยทั่วไป - ไม่ได้เผยแพร่เป็นแพ็กเกจเดียว แทนที่จะเป็นเช่นนั้น เมื่อคุณติดตั้งแอปพลิเคชัน Package Manager ของระบบจะดาวน์โหลดแพ็กเกจหลายตัว รวมถึงแพ็กเกจแอปหลักและ Dependencies ของมัน อย่างไรก็ตาม นี่เป็นจริงเฉพาะการติดตั้งแพ็กเกจแบบดั้งเดิมบน Linux เช่น การใช้ Package Managers

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

มา看看วิธีตรวจสอบ Dependencies ของแพ็กเกจบน Ubuntu

Package Dependencies คืออะไร?

Dependencies คือแพ็กเกจสนับสนุนที่จำเป็นสำหการทำงานที่ถูกต้องของแอปพลิเคชันใน Linux ตัวอย่างเช่น ถ้าคุณอยากดาวน์โหลด VLC Media Player บน Ubuntu APT จะติดตั้งแพ็กเกจเพิ่มเติมบางอย่างเช่น libc6 และ gcc นอกเหนือจากแพ็กเกจหลัก "vlc" Dependency อาจมีแพ็กเกจอื่นเป็น Dependencies ของมันด้วย ดังนั้นจึงสร้างโครงสร้างแบบลำดับชั้น

เนื่องจากแพ็กเกจ Linux อาศัยกันเกือบทุกซอฟต์แวร์ต้องการแพ็กเกจเพิ่มเติมที่คุณต้องติดตั้งบนระบบ

แม้ Package Managers อย่าง APT จะทำให้การจัดการและติดตั้ง Dependencies กล่าวๆ เป็นอัตโนมัติ ข้อผิดพลาดก็เกิดขึ้นเมื่อคุณพยายามสร้างแพ็กเกจด้วยตนเองจาก Source อย่างไรก็ตาม คุณแก้ไขข้อผิดพลาดแบบนี้ได้โดยการติดตั้ง Dependency ที่จำเป็นบนระบบของคุณด้วยคำสั่ง apt install

วิธีตรวจสอบ Package Dependencies ใน Linux

โชคดีที่บน Ubuntu มีหลายวิธีในการได้รายการ Dependencies ของแพ็กเกจ APT ตัวจัดการแพ็กเกจเริ่มต้นใน Ubuntu และดิสโทรที่พัฒนาจาก Debian เสนอคำสั่งหลายอย่างเพื่อข้อมูลเกี่ยวกับ Dependency ของแพ็กเกจ

ใช้ APT Package Manager

คุณใช้ APT ใน Ubuntu ได้เพื่อดูรายการ Dependencies ที่เกี่ยวข้องกับแพ็กเกจ ไวยากรณ์พื้นฐานของคำสั่งคือ:

sudo apt depends packagename

ตัวอย่างเช่น เพื่อตรวจสอบ Dependencies สำหแพ็กเกจ rhythmbox:

sudo apt depends rhythmbox

นอกจากรายการ Dependencies แล้ว เอาต์พุทจะรวมแพ็กเกจที่แนะนำและเสนอแนะที่คุณติดตั้งพร้อมกับ rhythmbox ได้

วิธีแสดง Dependencies ของแพ็กเกจใน Ubuntu

ทางเลือกอื่น คุณใช้คำสั่ง apt-cache เพื่อได้เอาต์พุตเดียวกัน

sudo apt-cache depends rhythmbox

เพื่อข้อมูลเพิ่มเติมเกี่ยวกับแพ็กเกจเฉพาะ ใช้เมธอด show แทน depends

sudo apt show rhythmbox
sudo apt-cache show rhythmbox

เอาต์พุท:

วิธีแสดง Dependencies ของแพ็กเกจใน Ubuntu

แสดง Dependencies ด้วย dpkg

ถ้าคุณดาวน์โหลดแพ็กเกจ DEB บนระบบและอยากรู้ว่า Dependencies ไหนจะติดตั้งพร้อมกับแพ็กเกจ คุณใช้แฟล็ก -I (i ตัวใหญ่ ไม่ใช่ L ตัวเล็ก) หรือ --info กับคำสั่ง

sudo dpkg -I /path/to/package.deb
sudo dpkg --info /path/to/package.deb

...ที่ /path/to/package.deb คือ Absolute หรือ Relative Path ไปยังไฟล์ DEB

เอาต์พุทจะแสดงขนาดแพ็กเกจ แหล่งที่มา และข้อมูลที่มีประโยชน์อื่นๆ พร้อมรายการ Dependencies

วิธีแสดง Dependencies ของแพ็กเกจใน Ubuntu

เพื่อได้รายการ Dependencies สำหแพ็กเกจที่ติดตั้งแล้ว ใช้แฟล็ก -s กับ dpkg ตัวอย่าง:

sudo dpkg -s firefox

เอาต์พุท:

วิธีแสดง Dependencies ของแพ็กเกจใน Ubuntu

ใช้ apt-rdepends

เพื่อเอาต์พุตที่ละเอียดกว่า คุณใช้ยูทิลิตี้ apt-rdepends ได้ เนื่องจากมันไม่มาติดตั้งมาก่อนบนดิสโทร Linux ส่วนใหญ่ คุณต้องติดตั้งด้วยตนเองบน Ubuntu ด้วย APT

sudo apt install apt-rdepends

ใช้รูปแบบคำสั่งต่อไปนี้เพื่อได้ Dependency Tree สำหแพ็กเกจ:

apt-rdepends packagename

ตัวอย่าง:

apt-rdepends vlc

เอาต์พุท:

วิธีแสดง Dependencies ของแพ็กเกจใน Ubuntu

เอาต์พุทที่สร้างขึ้นทั่วไปจะยาว เพราะ apt-rdepends แสดง Dependency Tree ครบถ้วน หมายความว่าคุณยังได้รายการ Dependencies ของ Dependency ด้วย

คุณยังได้รายการแพ็กเกจที่พึ่งพาแพ็กเกจเฉพาะตัวได้ ตัวอย่างเช่น เพื่อตรวจสอบว่าแพ็กเกจไหนต้องการ libc เป็น Dependency:

apt-rdepends -r libc

เอาต์พุท:

วิธีแสดง Dependencies ของแพ็กเกจใน Ubuntu

ยูทิลิตี้ Reverse-depends

แม้ฟีเจอร์ Reverse Dependency (แฟล็ก -r) ของ apt-rdepends ทำงานได้ดีกว่าคาดหมาย ยังมีอีกยูทิลิตี้หนึ่งที่คุณใช้สกัด Reverse Dependencies ของแพ็กเกจได้ คำสั่ง Reverse-depends เป็นส่วนของแพ็กเกจ ubuntu-dev-tools และดาวน์โหลดได้ด้วย:

sudo apt install ubuntu-dev-tools

ไวยากรณ์เริ่มต้นของคำสั่งคือ:

reverse-depends options packagename

...ที่ options คือแฟล็กที่คุณใช้กับคำสั่ง และ packagename คือชื่อแพ็กเกจที่คุณต้องการตรวจสอบ Reverse Dependencies

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

  1. -R: แสดงเฉพาะ Direct Dependencies (ไม่รวม Suggested หรือ Recommended Packages)
  2. -s: รวม Suggested Packages
  3. -l: นำเสนอเอาต์พุทในรูปแบบที่สะอาด เหมาะสำหการใช้ในสคริปต์

ในกรณีที่คุณไม่ समझวิธีใช้เครื่องมือและต้องการช่วยเหลือบรรทัดคำสั่ง ใช้แฟล็ก --help หรือ -h

reverse-depends -h
reverse-depends --help

ได้รายการ Dependencies ด้วยการติดตั้ง/ลบจำลอง

สำหผู้ที่อยากได้รายการสั้นของ Dependencies ทั้งหมดที่ยังไม่ได้ติดตั้งบนระบบ คุณรันการติดตั้งจำลอง (หรือการถอนการติดตั้งจำลอง) ของแพ็กเกจเฉพาะได้

เพื่อตรวจสอบ Dependencies ที่แพ็กเกจ PHP ต้องการ ตัวอย่างเช่น ให้รันคำสั่งต่อไปนี้:

sudo apt install -s php

เอาต์พุทจะมีส่วน "The following additional packages will be installed" ชื่อแพ็กเกจทั้งหมดที่ระบุเพิ่มเติมคือ Dependencies ที่ไม่พบบนระบบของคุณ

วิธีแสดง Dependencies ของแพ็กเกจใน Ubuntu

ถ้าคุณอยากได้รายการ Dependencies สำหแพ็กเกจที่ติดตั้งแล้วบน Ubuntu คุณทำการถอนการติดตั้งจำลองเพื่อตรวจสอบว่าแพ็กเกจเพิ่มเติมไหนจะถูกลบพร้อมกับมัน

sudo apt remove -s packagename

ตัวอย่าง:

sudo apt remove -s rhythmbox

เอาต์พุท:

วิธีแสดง Dependencies ของแพ็กเกจใน Ubuntu

แพ็กเกจ Linux อาศัยกันซ้ำกัน

เช่นที่คุณสรุปได้อย่างสมเหตุสมผลจากคู่มือนี้ เกือบทุกแพ็กเกจ Linux ขึ้นอยู่กับแพ็กเกจอื่น 原則หลักเบื้องหลังแนวคิดนี้คือบนระบบปฏิบัติการที่พัฒนาจาก Linux แต่ละแพ็กเกจควรทำงานเดียว และทำได้ดี

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

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