Câu trả lời:
package-cleanup --quiet --leaves
từ gói yum-utils sẽ liệt kê các gói thư viện không dựa vào các gói khác. Thật không may, nó có xu hướng hơi quá. Trên hệ thống của tôi, ví dụ, nó đề nghị loại bỏ libvirt. Thêm --exclude-bin
đối số giúp. Nếu bạn hài lòng với đề xuất của mình, thì để dọn dẹp các gói, hãy làm:
# package-cleanup --quiet --leaves --exclude-bin | xargs yum remove -y
DNF, sự thay thế yum kể từ Fedora 22, cũng cung cấp một autoremove
tiểu ban được mô hình hóa sau autoremove apt-get / yum.
Ví dụ:
# dnf autoremove
trong đó cố gắng loại bỏ tất cả các gói phụ thuộc được cài đặt tự động và các gói phụ thuộc không được sử dụng - sẽ tương đương với apt-get autoremove
.
# dnf autoremove examplepackage
trong đó loại bỏ gói phần mềm và tất cả các phụ thuộc được cài đặt tự động (và nếu không sử dụng).
Yum có lệnh autoremove kể từ Fedora 19, và nó được ghi nhận từ Fedora 20 / RHEL 7.
Việc sử dụng tương tự như việc thực hiện dnf, ví dụ:
# yum autoremove
hoặc là
# yum autoremove examplepackage
Yum hỗ trợ tùy chọn cấu hình để thay đổi hành vi mặc định của remove
tiểu ban (ví dụ: qua /etc/yum.conf):
clean_requirements_on_remove=yes
Khi điều này được đặt, tiếp theo yum remove
cũng cố gắng loại bỏ các phụ thuộc được cài đặt tự động nếu các gói khác không cần thiết.
Bạn cũng có thể tạm thời kiểm tra tùy chọn này thông qua một cái gì đó như:
# yum --setopt=clean_requirements_on_remove=1 remove examplepackage
(Đối với các phiên bản Fedora nơi tiểu ban yoremove không có sẵn và / hoặc clean_requirements_on_remove
không hoạt động.)
Mặc dù trong quá trình cài đặt các gói phụ thuộc được cài đặt được đánh dấu như vậy (dường như là tính năng tương đối mới của vòng / phút).
Bạn có thể tìm thấy các phụ thuộc không cần thiết thông qua:
$ package-cleanup --leaves -q --all \
| xargs repoquery --installed --qf '%{nvra} - %{yumdb_info.reason}' \
| grep -- '- dep' \
| cut -d' ' -f1 > tmp
Dòng lệnh này được lấy cảm hứng từ kịch bản của fenris02 .
Sau khi kiểm tra tmp
(và có lẽ giám tuyển), bạn có thể xóa chúng thông qua một cái gì đó như thế này:
# xargs yum remove < tmp
adobe-release
quayum localinstall
bạn cần cài đặt plugin yum "remove-with-leaf":
# yum install yum-plugin-remove-with-leaves.noarch
Một lần được cài đặt:
# yum remove --remove-leaves package
chúc may mắn!
yum-plugin-remove-with-leaves.noarch
gói được cài đặt để sử dụngpackage-cleanup
# package-cleanup --orphans >/tmp/junk
chỉnh sửa /tmp/junk
tập tin và xóa dòng đầu tiên là thông tin từ dòng lệnh nhập như sau:
for file in `cat /tmp/junk`
do
yum remove $file
done
apt-get autoremove
không. apt-get (8) nói: 'autoremove được sử dụng để loại bỏ các gói được cài đặt tự động để đáp ứng sự phụ thuộc cho một số gói và không còn cần thiết nữa.'
LƯU Ý: Câu trả lời này là đúng nhưng chỉ áp dụng cho RHEL 7+ và Fedora 20+ (trong đó chế độ tự động đã được thêm dưới dạng một tính năng mới).
# yum autoremove
Chỉ cần xác nhận để loại bỏ các gói đã chọn.
Dựa trên câu trả lời của Larry Mohr :
package-cleanup --orphans | sed '1d' | sed '/^ * /d' | sed '/Loading mirror speeds from cached hostfile/d' | xargs sudo yum remove
(Bao gồm bỏ qua cho gương nhanh nhất, nếu bạn tự hỏi.)
Trong Fedora, gói mồ côi có nghĩa là không có bản cập nhật ứng cử viên nào để cập nhật!
Nếu các gói mồ côi được tạo ra bởi bạn vô hiệu hóa yum.repos.d / some.conf.
yum distro-sync
Các gói mồ côi khác, lệnh có thể nguy hiểm.
yum remove $(package-cleanup --orphans)
hoặc, chỉ cần sử dụng lệnh an toàn.
yum remove name-of-page
Một cách khác để không gây ra những vấn đề này là sử dụng các giao dịch.
Sau khi thiết lập hệ thống cơ sở, khi bạn cài đặt bằng yum, nó sẽ tạo ra các giao dịch. Khi bạn có ý định loại bỏ mọi thứ, hãy khôi phục các giao dịch.
netbeans-platform
và dọn dẹp gói liệt kê một số nội dung nhưng thực tế không cónetbeans-platform
phụ thuộc nào được cài đặt trước đó (sử dụng Fedora 17).