dpkg มีไว้ทำอะไร?


21

คำถามของฉันง่าย - ฉันต้องการทราบเพิ่มเติมเกี่ยวกับ dpkg - ทำอะไรได้บ้าง


สิ่งนี้ได้รับการแก้ไขอย่างน้อยสองครั้งเพื่อปรับปรุงความชัดเจน - เพราะมันคงเป็นสิ่งที่ควรค่าแก่การเปิด (หากไม่ใช่สิ่งที่ซ้ำกัน) เพราะมันได้สร้างคำตอบที่ดีอย่างน้อยหนึ่งคำ
belacqua

1
คุณควรเยี่ยมชมก่อน: en.wikipedia.org/wiki/Dpkg
Pandya

คำตอบ:


17

ดังที่ได้กล่าวไว้dpkgเป็นเครื่องมือระบบระดับต่ำในการแยกวิเคราะห์แกะและติดตั้งหรือลบไฟล์. deb อย่างไรก็ตามจะเป็นการดีกว่าถ้าจะใช้Software CentreหรือGdebiติดตั้งหรือลบไฟล์. deb ที่ได้รับมาจากแหล่งอื่นเนื่องจากโปรแกรมทั้งสองนี้มีการแก้ปัญหาการพึ่งพา

แต่สิ่งที่ยังไม่ได้รับการอธิบายเป็นลักษณะทางกายวิภาคของการปรับปรุงการใช้และdpkg apt-getตัวอย่างเช่นหากเราเรียกapt-getติดตั้งcheeseต้นไม้อ้างอิงจะถูกวิเคราะห์และไฟล์ที่จำเป็นจะถูกดึงมาจากapt-getนั้นส่งผ่านไปdpkgยังเพื่อแยกวิเคราะห์และติดตั้งไปยังตำแหน่งที่ถูกต้องและกำหนดค่าตามสคริปต์ที่อยู่ภายใน

สคริปต์ที่อ่านโดยdpkgภายในแต่ละไฟล์. deb มีความสำคัญเนื่องจากให้ข้อมูลกับโปรแกรมเกี่ยวกับการติดตั้งการลบและการกำหนดค่าของแพ็คเกจ ดังนั้นเมื่อคุณดู/var/log/dpkg.logมีรายละเอียดมากมายเกี่ยวกับ 'ทริกเกอร์' และแพคเกจจะผ่านขั้นตอนที่แตกต่างกันของการเปิดออกและการกำหนดค่า ในบล็อกของเขา Raphael Hertzog (ซึ่งเป็นผู้พัฒนา Debian คนสำคัญและเป็นผู้ดูแลdpkgแพ็คเกจ) อธิบายเพิ่มเติมเกี่ยวกับทริกเกอร์ dpkgและวิธีการdpkgตรวจสอบและกำหนดค่าแพ็คเกจ

ตอนนี้เราไปถึงหัวใจของสิ่งที่dpkgทำ; มันจัดการกับแพคเกจ Debian อย่างเชี่ยวชาญมากกว่าการพึ่งพาของพวกเขา ด้วยdpkg-debตัวอย่างเช่นคุณสามารถดำเนินการต่าง ๆ ในการวิเคราะห์และแยกไฟล์ด้วยตนเองจากไฟล์เก็บถาวร. deb ดูman dpkg-debข้อมูลเพิ่มเติม

สถานะของแต่ละแพ็คเกจมีการระบุไว้ใน/var/lib/dpkg/statusซึ่งสามารถใช้กับgrepเพื่อตรวจสอบแพคเกจเฉพาะ Dpkgยังสามารถถูกเรียกให้กำหนดค่าแพคเกจเฉพาะที่ได้รับการกำหนดค่า (ดูman dpkg-reconfigure):

sudo dpkg-reconfigure <package>

หรือทำการกำหนดค่าแพคเกจที่ไม่ได้กำหนดค่าทั้งหมดหากมีปัญหากับการอัปเดตและการกำหนดค่าแพ็คเกจบางอย่างยังคงค้างอยู่:

sudo dpkg --configure -a

สำหรับบทช่วยสอนที่ดีที่มุ่งเน้นไปที่dpkgและapt-getดูบทที่ 5 และ 6 ของDebian Handbookซึ่งเป็นการสนทนาที่ดีที่สุด เข้าสู่man dpkgเครื่องเทอร์มินัลของคุณหรือดูmanpages ของ Ubuntuออนไลน์เพื่อดูตัวเลือกทั้งหมดที่มีเช่นการใช้dpkg -lเพื่อแสดงรายการแพ็คเกจที่ติดตั้งอยู่ในปัจจุบัน


4

dpkg เป็นวิธีบรรทัดคำสั่งในการติดตั้งจาก. deb หรือลบแพ็คเกจที่ติดตั้งไว้แล้ว ตัวอย่างเช่นหากคุณมีไฟล์. deb ในโฮมไดเร็กตอรี่ของคุณการรันdpkg -i yourpackage.debจะติดตั้งแพ็คเกจนั้นให้คุณ ฉันพบว่ามันมีประโยชน์อย่างน้อยสำหรับฉันเพราะบางครั้งเมื่อคลิกที่ไฟล์. deb มันจะโหลด Ubuntu Software Center แต่ไม่เคยติดตั้งหรือมีปัญหาจริงๆ


4

เช่นเคยmanคำสั่งเป็นจุดเริ่มต้นที่ดี
man dpkgสามารถให้ตัวเลือกทั้งหมดแก่คุณได้อย่างไรก็ตาม:

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

ดังนั้นโดยทั่วไปมันเป็น apt-get โดยไม่มีการแก้ไขการพึ่งพาและใช้ในการติดตั้งไฟล์. deb

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

ตัวอย่างเช่นการใช้dpkg -r zipคุณสามารถลบแพ็กเกจ zip ได้ แต่แพ็คเกจใด ๆ ที่ขึ้นอยู่กับแพคเกจนั้นจะยังคงติดตั้งอยู่และอาจทำงานไม่ถูกต้องอีกต่อไป

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับมันบางในคู่มือเซิร์ฟเวอร์และอื่น ๆ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.