Gỡ cài đặt an toàn một gói trong Gentoo


12

Tôi muốn gỡ cài đặt một gói cụ thể trong Gentoo và duyệt qua trang man xuất hiện. Tôi tìm thấy --unmergetùy chọn:

CẢNH BÁO: Hành động này có thể loại bỏ các gói quan trọng! Loại bỏ tất cả các gói phù hợp. Điều này không kiểm tra các phụ thuộc, vì vậy nó có thể loại bỏ các gói cần thiết cho hoạt động đúng của hệ thống của bạn. Các đối số của chúng có thể là các nguyên tử hoặc ebuild. Đối với phiên bản nhận biết phụ thuộc của --unmerge , hãy sử dụng --depclean hoặc --prune .

Tuy nhiên, tôi muốn xuất hiện để kiểm tra xem gói tôi muốn gỡ cài đặt có được yêu cầu bởi bất kỳ gói cài đặt nào khác trong hệ thống không. --depclean--prunekhông cung cấp chức năng đó:

  • --depclean xóa các gói đã được cài đặt làm phụ thuộc, nhưng không cần thiết nữa
  • --prune "xóa tất cả trừ phiên bản cài đặt cao nhất của gói khỏi hệ thống của bạn"

Không có phiên bản kiểm tra phụ thuộc của --unmerge?

Câu trả lời:


17

Tôi không nghĩ depcleanlàm việc theo cách bạn mô tả. Không có bất kỳ đối số nào, nhưng nếu bạn truyền cho nó một tên gói thì nó hoạt động như unmergevới một kiểm tra phụ thuộc bổ sung. Từ emerge(1):

Depclean phục vụ như một phiên bản nhận thức phụ thuộc của --unmerge. Khi được cung cấp một hoặc nhiều nguyên tử, nó sẽ hủy kết hợp các gói phù hợp không có phụ thuộc ngược. Sử dụng --depcleancùng với --verboseđể hiển thị phụ thuộc ngược.

Tôi luôn luôn sử dụng --depclean( -c) để hủy các gói riêng lẻ; nó hoạt động tốt


6

gentoolkit giúp đỡ:

equery d <atom>

Bạn có thể kiểm tra các phụ thuộc trước, sau đó tiến hành loại bỏ gói sau khi kiểm tra các phụ thuộc của nó.


5

Một cách khác để đạt được kết quả tương tự (mặc dù đó không phải là lệnh không kết hợp với kiểm tra phụ thuộc):, emerge --deselect packageloại bỏ gói khỏi tệp thế giới. Bây giờ, việc chạy emerge --depcleansẽ loại bỏ gói đó nếu không có gói nào khác yêu cầu.


Điều đó có nghĩa là emerge --depcleanloại bỏ tất cả các gói đã được cài đặt bằng cách sử dụng emerge --oneshot(trừ khi các gói đó là cần thiết bởi một gói từ thế giới)?
daniel kullmann

@danielkullmann có. nó tính toán toàn bộ biểu đồ phụ thuộc và loại bỏ những gì không được kéo bởi bất kỳ gói nào trên thế giới. Bạn có thể sử dụng emerge --noreplace --selectđể thêm các gói đã cài đặt mà không cần biên dịch lại chúng, btw.
njsg

1

Đôi khi, emerge --unmergeđưa ra thông điệp cảnh báo này:

 * This action can remove important packages! In order to be safer, use
 * `emerge -pv --depclean <atom>` to check for reverse dependencies before
 * removing packages.

Có vẻ như đây là cách được khuyến nghị để kiểm tra sự phụ thuộc trước khi hủy hợp đồng một gói. Tuy nhiên, tôi vẫn hy vọng rằng có một cách tốt hơn, tự động hơn để đạt được điều này.

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.