ฉันจะรู้ได้อย่างไรว่าแพ็คเกจถูกติดตั้งโดย dpkg หรือ apt?


15

ฉันต้องการลบแพคเกจ แต่ฉันลืมวิธีติดตั้งผ่านdpkgหรือapt-get

ฉันลองตรวจสอบdpkg-query -list | grep myPackageและดูapt list --installed | grep myPackageแต่ myPackage ปรากฏบนทั้งสอง

ดังนั้นฉันจะทราบได้อย่างไรว่าแพคเกจถูกติดตั้งโดย dpkg หรือ apt?

ในการทำคำสั่งถอนการติดตั้งที่ถูกต้องเช่น: apt-get removeหรือdpkg -r


7
คุณสามารถถอนการติดตั้งด้วยวิธีใดวิธีหนึ่ง
Pilot6

คำตอบ:


28
  1. เปรียบเทียบบันทึกของ/var/log/apt/term.logซึ่งเป็นล็อกไฟล์ที่สร้างขึ้นโดยaptและซึ่งเป็นล็อกไฟล์ที่สร้างขึ้นโดย/var/log/dpkg.log dpkgถ้าคุณสังเกตชื่อแพคเกจซึ่งสามารถพบได้ใน/var/log/dpkg.logแต่ไม่พบ/var/log/apt/term.logมีโอกาสมากที่คุณจะติดตั้งแพ็กเกจภายในdpkgเวลานั้น

  2. โปรดจำไว้ว่าเป็นส่วนหน้าสำหรับapt dpkgดังนั้นจึงขอแนะนำให้ลบแพ็กเกจใด ๆaptแทนdpkgเพราะaptจะจัดการกับการพึ่งพาเพื่อลบแพ็กเกจเหล่านั้นซึ่งจะไม่ถูกใช้โดยแพ็กเกจอื่น ๆ (หรือทำเครื่องหมายเป็น "ไม่ได้ใช้อีกต่อไป" เพื่อให้คุณลบมันในภายหลัง ขึ้นอยู่กับaptตัวเลือกที่แน่นอนที่คุณใช้จริง) อย่างไรก็ตามคุณไม่จำเป็นต้องลบแพ็คเกจออกdpkgหากคุณต้องการ คุณน่าจะทิ้งแพ็คเกจไว้มากมายที่คุณจะไม่ใช้อีกต่อไป


ขอบคุณสำหรับความคิดเห็น @ user535733 ฉันแก้ไขคำตอบตามความคิดเห็นของคุณ
tai271828

21

แพคเกจใด ๆ ที่ติดตั้งกับ APT dpkgยังมีการติดตั้ง คำนวณ APT dependencies dpkgและเรียกแพคเกจซึ่งเป็นแล้วแตกและติดตั้งโดย

หากคุณสามารถค้นหาแพ็คเกจของคุณด้วย APT คุณควรใช้aptคำสั่งเพื่อถอนการติดตั้งเนื่องจาก APT จะคำนวณการขึ้นต่อกันของแพ็คเกจและ:

  • ลบแพ็คเกจที่ขึ้นอยู่กับแพ็คเกจที่เลือกสำหรับการลบ
  • แพ็กเกจเครื่องหมายที่ขึ้นต่อกันของแพ็กเกจที่เลือกสำหรับการลบตามที่ไม่ต้องการอีกต่อไปเพื่อให้สามารถล้างได้ด้วย sudo apt autoremove

4

ไม่สำคัญว่าจะถอนการติดตั้งแพคเกจอย่างไร

dpkg ยังต้องมีการอ้างอิงที่กำหนดไว้ในแพ็คเกจ

เมื่อคุณเรียกใช้apt removeมันเริ่มที่dpkgจะลบแพคเกจ

เมื่อคุณติดตั้งแพคเกจโดยใช้dpkgและต้องการการอ้างอิงบางอย่างกระบวนการติดตั้งจะหยุดโดยมีข้อผิดพลาด คุณสามารถแก้ไขได้โดยsudo apt install -fที่จะติดตั้งการอ้างอิงหากพวกเขามีอยู่ ในกรณีนี้apt autoremoveจะทำงานในลักษณะเดียวกัน

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