ฉันเพิ่งเปลี่ยนจาก Ubuntu เป็น Fedora14 ใน Ubuntu เรามีapt-get autoremove
สิ่งที่จะลบแพ็กเกจเด็กกำพร้า / ไม่ได้ใช้ สิ่งที่เป็นคู่ใน Fedora?
ฉันเพิ่งเปลี่ยนจาก Ubuntu เป็น Fedora14 ใน Ubuntu เรามีapt-get autoremove
สิ่งที่จะลบแพ็กเกจเด็กกำพร้า / ไม่ได้ใช้ สิ่งที่เป็นคู่ใน Fedora?
คำตอบ:
package-cleanup --quiet --leaves
จากแพ็คเกจyum-utilsจะแสดงรายการแพ็คเกจห้องสมุดที่ไม่ได้พึ่งพาโดยแพ็คเกจอื่น น่าเสียดายที่มันมีแนวโน้มที่จะ overeager เล็กน้อย ตัวอย่างเช่นในระบบของฉันมันแนะนำให้ลบ libvirt การเพิ่ม--exclude-bin
อาร์กิวเมนต์ช่วย หากคุณพอใจกับข้อเสนอแนะจากนั้นให้ทำความสะอาดแพ็คเกจโดยทำดังนี้
# package-cleanup --quiet --leaves --exclude-bin | xargs yum remove -y
DNF ซึ่งเป็นการแทนที่ yum ตั้งแต่ Fedora 22 ยังจัดเตรียมคำautoremove
สั่งย่อยซึ่งทำโมเดลหลังจาก apt-get / yum autoremove
ตัวอย่าง:
# dnf autoremove
ซึ่งพยายามที่จะลบติดตั้งโดยอัตโนมัติและไม่ได้ใช้อย่างอื่นแพคเกจการพึ่งพาทั้งหมด - apt-get autoremove
ควรจะเทียบเท่าสวยมาก
# dnf autoremove examplepackage
ซึ่งจะลบตัวอย่างของแพ็คเกจและการอ้างอิงทั้งหมดที่ติดตั้งโดยอัตโนมัติ (และไม่ได้ใช้เป็นอย่างอื่น)
Yum มีคำสั่ง autoremove ตั้งแต่ Fedora 19 และมีการบันทึกไว้ตั้งแต่ Fedora 20 / RHEL 7
การใช้งานคล้ายคลึงกับการนำไปใช้ของ dnf เช่น:
# yum autoremove
หรือ
# yum autoremove examplepackage
Yum สนับสนุนตัวเลือกการกำหนดค่าเพื่อเปลี่ยนพฤติกรรมเริ่มต้นของคำremove
สั่งย่อย (เช่นผ่าน /etc/yum.conf):
clean_requirements_on_remove=yes
เมื่อตั้งค่าไว้สิ่งต่อไปyum remove
จะพยายามลบการพึ่งพาที่ติดตั้งโดยอัตโนมัติหากไม่จำเป็นต้องใช้ในแพ็คเกจอื่น ๆ
นอกจากนี้คุณยังสามารถทดสอบตัวเลือกนี้ชั่วคราวผ่านทางสิ่งต่อไปนี้:
# yum --setopt=clean_requirements_on_remove=1 remove examplepackage
(สำหรับเวอร์ชัน Fedora ที่คำสั่งย่อย yum autoremove ไม่พร้อมใช้งานและ / หรือclean_requirements_on_remove
ไม่ทำงาน)
แม้ว่าในระหว่างการติดตั้งแพคเกจการพึ่งพาการติดตั้งมีการทำเครื่องหมายเช่นนี้ (ดูเหมือนจะค่อนข้างคุณลักษณะใหม่ของ rpm / yum)
คุณสามารถค้นหาการพึ่งพาที่ไม่จำเป็นผ่านทาง:
$ package-cleanup --leaves -q --all \
| xargs repoquery --installed --qf '%{nvra} - %{yumdb_info.reason}' \
| grep -- '- dep' \
| cut -d' ' -f1 > tmp
บรรทัดคำสั่งนี้เป็นแรงบันดาลใจสคริปต์ fenris02 ของ
หลังจากการตรวจสอบtmp
(และบางทีอาจจะเป็น curation) คุณสามารถลบพวกเขาผ่านบางสิ่งเช่นนี้:
# xargs yum remove < tmp
adobe-release
ผ่านทางyum localinstall
คุณต้องติดตั้งปลั๊กอิน yum "remove-with-leaves":
# yum install yum-plugin-remove-with-leaves.noarch
ติดตั้งครั้งเดียว:
# yum remove --remove-leaves package
โชคดี!
yum-plugin-remove-with-leaves.noarch
แพ็คเกจที่ติดตั้งให้ใช้package-cleanup
# package-cleanup --orphans >/tmp/junk
แก้ไข/tmp/junk
ไฟล์และลบบรรทัดแรกซึ่งเป็นข้อมูลจากบรรทัดคำสั่งป้อนข้อมูลต่อไปนี้:
for file in `cat /tmp/junk`
do
yum remove $file
done
apt-get autoremove
ทำ apt-get (8) พูดว่า: 'autoremove ใช้เพื่อลบแพ็คเกจที่ติดตั้งโดยอัตโนมัติเพื่อตอบสนองการขึ้นต่อกันของบางแพ็คเกจและไม่จำเป็นต้องใช้อีกต่อไป'
หมายเหตุ:คำตอบนี้ถูกต้อง แต่ใช้ได้กับ RHEL 7+ และ Fedora 20+ เท่านั้น (ที่มีการเพิ่มระบบตอบรับอัตโนมัติเป็นคุณลักษณะใหม่)
# yum autoremove
เพียงยืนยันที่จะลบแพ็คเกจที่เลือก
สร้างเมื่อคำตอบของแลร์รี่มอร์ :
package-cleanup --orphans | sed '1d' | sed '/^ * /d' | sed '/Loading mirror speeds from cached hostfile/d' | xargs sudo yum remove
(รวมถึงการข้ามสำหรับกระจกที่เร็วที่สุดหากคุณสงสัย)
ใน Fedora แพคเกจเด็กกำพร้าหมายถึงไม่มี repos ของผู้สมัครเพื่ออัปเดต!
หากแพ็คเกจเด็กกำพร้าถูกสร้างขึ้นโดยคุณปิดการใช้งาน yum.repos.d / some.conf
yum distro-sync
แพคเกจเด็กกำพร้าอื่น ๆ คำสั่งอาจเป็นอันตราย
yum remove $(package-cleanup --orphans)
หรือเพียงแค่ใช้คำสั่งความปลอดภัย
yum remove name-of-page
อีกวิธีหนึ่งที่ไม่ทำให้เกิดปัญหาเหล่านี้คือการใช้ธุรกรรม
หลังจากตั้งค่าระบบพื้นฐานเมื่อคุณติดตั้งโดยใช้ yum ระบบจะสร้างธุรกรรม เมื่อคุณต้องการลบสิ่งต่าง ๆ ให้ย้อนกลับไปทำธุรกรรม
netbeans-platform
และการล้างแพคเกจแสดงรายการบางอย่าง แต่จริงๆแล้วไม่มีการnetbeans-platform
อ้างอิงที่ติดตั้งไว้ก่อนหน้านี้(ใช้ Fedora 17)