เมื่อใช้ zypper ฉันจะลบแพ็กเกจทั้งหมดที่ติดตั้งจากที่เก็บเฉพาะได้อย่างไร


10

zypper arบอกว่าผมได้เพิ่มพื้นที่เก็บข้อมูลโดยใช้ จากนั้นฉันไปแล้วและติดตั้งหลายแพคเกจจากที่เก็บ แต่ตอนนี้ฉันต้องการลบทั้งหมด

มีคำสั่งที่อนุญาตให้ฉันลบแพ็กเกจทั้งหมดที่ฉันติดตั้งจากที่เก็บเฉพาะนั้นหรือไม่?

คำตอบ:


7

ฉันคิดว่าไม่มีคำสั่งดังกล่าว คุณสามารถแสดงรายการแพ็คเกจจากที่เก็บเฉพาะ:

zypper search --installed-only --repo devel:tools

หรือแพ็กเกจที่ถูกโยงถึงทั้งหมดหากคุณลบที่เก็บแล้ว:

zypper packages --orphaned

จากนั้นคุณสามารถลองcutชื่อแพ็กเกจจากผลลัพธ์และส่งต่อไปยังzypper removeถ้ามันคุ้มค่ากับความพยายาม


ระบบ openSuSE 12.3 ของฉันไม่มี--orphanedตัวเลือก แต่อาจใช้งานได้zypper packages -i -R:: จะแสดงรายการแพ็คเกจที่ติดตั้งไว้ในลำดับที่เก็บข้อมูลย้อนกลับ
Jeroen Wiert Pluimers

2
--orphanedถูกเพิ่มใน zypper 1.9.2 ( github.com/openSUSE/zypper/issues/34 )
marcin

1

คุณสามารถใช้การรวมกันของzypper search, awkและxargsจะลบทุกแพคเกจจากพื้นที่เก็บข้อมูล ตัวอย่างเช่น:

zypper se --repo openSUSE-Tumbleweed-Debug --installed | awk '/^i(\+|\s)/ {print $3}' | xargs sudo zypper rm

awk '/^i(\+|\s)/ {print $3}'เพื่อให้ตรงกับแพ็คเกจที่ติดตั้งทั้งหมด (i หรือ i +)
Mesco

@Mesco zypper ควรทำการพิมพ์แพ็คเกจที่ติดตั้งเมื่อใช้งาน--installedเท่านั้น
sebix

สิทธิการใช้หรือ-i --installed-onlyแต่ฉันก็ได้ค้นหา i และ i + ที่จุดเริ่มต้นเพื่อข้ามสองสามแถวแรก ( Loading repository data...) อาจมีวิธีที่ดีกว่าในการข้าม 5 แถวแรก แต่ถ้าคุณใช้ regex อยู่แล้ว ... ;)
Mesco

บางทีฉันใช้ zypper เวอร์ชันที่แตกต่างกัน (1.14.4) แต่ผู้ชายคนนั้นบอกว่าคำสั่งควรจะเป็นse [options] [query]เช่นนั้นโซลูชันของคุณไม่ทำงาน
Mesco

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