คุณจะลบแพ็กเกจได้อย่างไร?


188

ฉันกำลังพยายามติดตั้งoctave3.2แพ็คเกจใหม่ทั้งหมด

ในการทำเช่นนี้ฉันได้ลบมันออกไปแล้วลองติดตั้งใหม่อีกครั้ง

เมื่อฉันติดตั้งใหม่เกิดข้อผิดพลาด อาจเป็นข้อผิดพลาดในแพ็คเกจ แต่ฉันต้องการให้แน่ใจว่าฉันได้ลบทุกอย่างออกเพื่อให้ฉันสามารถทำการติดตั้งใหม่ทั้งหมด

การทำเช่นนี้เพียงพอหรือไม่

sudo apt-get --purge remove octave3.2

สามารถติดตั้งแพ็กเกจใหม่อีกครั้งและดูรายการแพคเกจหรือการอ้างอิง ..
user309924

แนะนำให้เยี่ยมชม นี้
Pandya

คำตอบ:


185

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

การลบแพ็กเกจด้วยหรือจะลบไฟล์เหล่านั้นและไฟล์คอนฟิกูเรชันโกลบอล (เช่น systemwide) ทั้งหมด นี่คือความหมายของคนทั่วไปเมื่อพูดถึงการลบแพ็กเกจอย่างสมบูรณ์sudo apt purge ...sudo apt --purge remove ...

แต่นั่นไม่ได้หมายความว่าระบบของคุณเหมือนเดิมก่อนที่จะมีการติดตั้งแพ็คเกจ โดยเฉพาะอย่างยิ่ง:

  • สิ่งนี้จะไม่ลบแพ็คเกจที่ติดตั้งเป็นการอ้างอิงเมื่อคุณติดตั้งแพคเกจที่คุณกำลังลบ สมมติว่าแพคเกจเหล่านี้จะไม่อ้างอิงของแพคเกจอื่น ๆ และที่คุณไม่ได้ทำเครื่องหมายพวกเขาเป็นที่ติดตั้งด้วยตนเองคุณสามารถลบการอ้างอิงด้วยsudo apt autoremoveหรือ (ถ้าคุณต้องการที่จะลบไฟล์การกำหนดค่า systemwide sudo apt --purge autoremoveของพวกเขามากเกินไป)

  • สิ่งนี้ไม่ได้ลบไฟล์การกำหนดค่าที่ไม่ใช่ทั้งระบบ โดยเฉพาะจะไม่ลบการกำหนดค่าเฉพาะของผู้ใช้:

    • ไม่ลบไฟล์การกำหนดค่าและไดเรกทอรีที่อยู่ในโฮมได.configเร็กตอรี่ของผู้ใช้ (หรือในไดเร็กทอรีย่อยของโฮมไดเร็กตอรี่ของพวกเขา), สร้างขึ้นโดยซอฟต์แวร์ที่แพ็คเกจให้

      • หากไฟล์ / โฟลเดอร์เหล่านี้ไม่ได้เก็บไว้.configก็มักจะเริ่มต้นด้วย.ตัวเอง ทั้งสองวิธีที่คุณสามารถดูพวกเขาด้วยlsโดยใช้-aหรือ-Aธงและคุณสามารถเห็นพวกเขาใน Nautilus และส่วนใหญ่ไฟล์เบราว์เซอร์อื่น ๆ / ผู้จัดการโดยการกดCtrl+ Hหรือไปดู > แสดงไฟล์ที่ซ่อน
    • ไม่ย้อนกลับการเปลี่ยนแปลงที่ทำกับไฟล์การกำหนดค่าเฉพาะผู้ใช้ที่มีอยู่

    • มันไม่ได้ลบใหม่gconfหรือdconfกุญแจหรือย้อนกลับการเปลี่ยนแปลงใด ๆgconfหรือdconfการกำหนดค่า

  • การใช้purgeหรือ--purge removeแทนremoveจะไม่ย้อนกลับการเปลี่ยนแปลงไปยังไฟล์การกำหนดค่าทั้งระบบที่มีอยู่ในแพ็คเกจอื่น ๆ หรือสร้างโดยผู้ใช้เอง อย่างไรก็ตามบางครั้งการเปลี่ยนแปลงดังกล่าวจะถูกยกเลิกโดยการถอนการติดตั้งแพคเกจ (หรือไม่ว่าจะเป็นpurgeมากกว่าremove)


61

ใช้คำสั่ง:

sudo apt-get purge --auto-remove packagename

มันจะกำจัดแพคเกจที่จำเป็นพร้อมกับการอ้างอิงที่ติดตั้งกับแพ็คเกจเหล่านั้น ตัวเลือกที่ทำงานคล้ายกับ--auto-removesudo apt-get autoremove


1
สิ่งนี้แก้ปัญหาของฉันโดยเฉพาะกับcertbot
T.Todua

7

คุณตรวจสอบชื่อของแพ็คเกจที่คุณต้องการลบก่อน:

dpkg --list

จากนั้นลบแพ็คเกจที่กำหนด

sudo apt-get remove package_name

ล้างรหัสที่เกี่ยวข้อง

sudo apt-get purge package_name

จากนั้นระบบตอบกลับอัตโนมัติ

sudo apt-get autoremove

ในที่สุดทำความสะอาดเพื่อให้คุณตรวจสอบทุกอย่างถูกลบอย่างถูกต้อง

sudo apt-get clean

คุณต้องการตรวจสอบที่รายการแพคเกจว่ารายการที่คุณต้องการลบไม่อยู่ในรายการอีกต่อไป แต่เป็นทางเลือก

ขอให้เป็นวันที่ดีนะ


4

ติดตามแพ็คเกจการพึ่งพาพิเศษที่ติดตั้งดีกว่าในขณะที่คุณกำลังติดตั้ง

The following extra packages will be installed: 
    libgssglue1 libnfsidmap2 libtirpc1 nfs-common rpcbind

ถ้าคุณลบแพคเกจเดิมเท่านั้นแพคเกจอ้างอิงอาจยังคงอยู่

ดังนั้นคุณต้องลบแต่ละรายการด้วยตนเอง

apt-get purge package_name

1
ฉันจะได้รับรายชื่อของแพ็คเกจเหล่านี้ได้อย่างไรถ้าคอนโซลของฉันเลื่อนไม่มากพอ
Luke Taylor

@LukeTaylor apt-get install package_name > output จากนั้น less output ให้ดูผลลัพธ์ทั้งหมดด้วยการเลื่อน
Harikrishnan

2

แทนที่จะลบแพ็คเกจที่ขึ้นต่อกันอัตโนมัติที่ติดตั้งด้วยตนเองให้ใช้สิ่งต่อไปนี้แทน:

 zanfilip @ zanfilip-VPCEB3L0E: ~ / jp / eclipse $ sudo apt-get --purge autoremove
    กำลังอ่านรายการแพ็กเกจ ... เสร็จแล้ว
    อาคารต้นไม้พึ่งพา       
    กำลังอ่านข้อมูลสถานะ ... เสร็จแล้ว
    แพ็คเกจต่อไปนี้จะถูกลบออก
      libupstart1 * linux-headers-3.16.0-30 * linux-headers-3.16.0-30-generic *
      linux-image-3.16.0-30-generic * linux-image-extra-3.16.0-30-generic *
    0 เพื่ออัปเกรด, 0 ถึงติดตั้งใหม่, 5 เพื่อลบและ 23 ไม่ต้องการอัปเกรด
    หลังจากการดำเนินการนี้พื้นที่ดิสก์ 279 MB จะว่าง
    คุณต้องการทำต่อไปหรือไม่? [Y / N]


2

หากคุณต้องการลบแพ็กเกจ secific บางส่วนคุณสามารถใช้คำสั่งเหล่านี้:

dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}'| xargs apt-get -y --purge autoremove

อย่าลืมสวิตช์ "-y" เพราะมิฉะนั้น apt-get จะถามเกี่ยวกับการลบแพ็คเกจแต่ละแพ็กเกจและจะไม่ลบอะไรเลย


2
สิ่งนี้อาจมีประโยชน์ แต่อาจเป็นอันตรายได้: มันสามารถจับคู่แพคเกจที่คุณไม่ต้องการให้ลบได้อย่างง่ายดายและลบการตั้งค่าโดยไม่ต้องยืนยัน! โชคดีที่ตั้งแต่ชื่อแพคเกจไม่เคยมีพื้นที่เราสามารถเปิดรอบและวาง:-y apt-get --purge autoremove $(dpkg --get-selections | grep PACKAGE_NAME | awk '{ print $1}')นั่นจะค่อนข้างปลอดภัยกว่า
joeytwiddle

อาจจะปลอดภัยกว่าที่จะเรียกใช้คำสั่งเป็น: dpkg --get-selections | grep PACKAGE_NAME | awk '{print $ 1}' อันดับแรกจากนั้นรันด้วย xargs เป็นวิธีปฏิบัติที่ดีกว่าเพื่อให้ผู้ใช้เห็นสิ่งที่จะถูกลบอันเป็นผลมาจากคำสั่ง
Kerem Ersoy

0

ตัวเลือกอื่นที่คุณมีคือใช้debfosterแพ็คเกจ สิ่งนี้จะค้นหาและแนะนำแพ็คเกจสำหรับการลบ (และล้าง) แบบโต้ตอบพร้อมกับแพ็คเกจที่ขึ้นต่อกัน

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