Trên Gentoo có cách nào để tìm danh sách các gói đã cài đặt mà không có các gói khác phụ thuộc vào chúng không?


7

Trên Gentoo, có cách nào để tìm danh sách các gói đã cài đặt không có các gói khác phụ thuộc vào chúng (nên được gọi là gói lá) không? Hoặc, có tương tự pkg-orphantiện ích FreeBSD không?

Câu trả lời:


6

Đó là những gì emerge --pretend --depclean. Nó tìm kiếm các gói đó là:

  • không phụ thuộc vào các ebuild khác, và
  • không phải trong worldcũng không phải systembộ

Đó là một ý tưởng tốt để chạy emaint --check worldđể tìm (và sau đó sửa chữa) các vấn đề tiềm ẩn với tệp thế giới của bạn trước khi bị từ chối.

Các công cụ hữu ích khác: Bảo trì Gentoo


Trong trường hợp của tôi, các gói mà tôi quan tâm (các mô-đun perl từ câu hỏi khác của tôi) đều có trong tệp thế giới.
AlexD

2
Khi bạn đặt công cụ vào thế giới, nó có nghĩa là "Tôi phụ thuộc vào điều này". Tức là bạn là người phụ thuộc. Xóa các gói mà bạn không cần rõ ràng khỏi tệp thế giới của bạn. Khi bạn xuất hiện những thứ bạn không cần rõ ràng, hãy sử dụng --oneshottùy chọn.
Mat

Thêm vào những nhận xét trước bởi Mat: Một dòng lệnh cách thích hợp để loại bỏ các gói như vậy từ worldemerge --deselect package_atom, nơi package_atomcó thể chỉ đơn giản là tên của gói (để biết thêm, xem man portage).
rozcietrzewiacz

Các gói này được cài đặt theo công thức bù nhìn, vì vậy việc sử dụng --oneshotsẽ yêu cầu sửa đổi nguồn rối và tôi cần các gói này có trong tệp thế giới trong sản xuất để chúng không bị xóa thường xuyên depclean(các gói này là phụ thuộc của ứng dụng web lớn không được đóng gói đúng cách chưa). Nhưng ngay bây giờ tôi cần phải dọn sạch các gói này khỏi hệ thống kiểm tra và loại bỏ các gói này bằng tay khỏi tệp thế giới (hoặc khỏi hệ thống) là nhiệm vụ chính xác mà tôi đang cố gắng tránh.
AlexD

Bạn không thể có cả hai cách - nói với hệ thống họ được yêu cầu, sau đó yêu cầu hệ thống tự động dọn dẹp. Bạn cần theo dõi những gì bạn đang làm. Các bộ sẽ giúp một chút, nhưng như bạn đã nói trong một nhận xét khác, nó không phải là chống đạn. Bạn cũng có thể chỉ cần ghi lại tất cả các hành động xuất hiện của mình (với một trình bao bọc đơn giản) và sử dụng điều đó để quay lại các thay đổi của bạn.
Mat

2

Nếu bạn muốn xem các gói nào trong @worldtập hợp không phải là phụ thuộc của các gói đã cài đặt khác, bạn có thể chạy emerge --pretend --depclean @world(hoặc emerge -pc @world). Cũng lưu ý rằng nếu bạn cố gắng xóa gói bằng cách sử dụng emerge --depclean atom(thay vì emerge --unmerge atom), portage sẽ chỉ xóa gói nếu không có gì khác phụ thuộc vào gói đó.


1
Điều này không hoạt động (nữa?) Trả emerge --pretend --depclean @worldvềemerge: the given set 'world' does not support unmerge operations
Jonas Stein
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.