Làm cách nào để gỡ cài đặt các phụ thuộc mới được cài đặt cho gói RPM?


16

Có cách nào dễ dàng để tạo một danh sách các phụ thuộc mà gói RPM mới được cài đặt sẽ cài đặt yumkhông?

Ví dụ: Nếu bạn làm yum install rubythì nó cũng sẽ cài đặt một số rubygems.

Nhưng khi tôi gỡ cài đặt rubygói, tôi cũng muốn loại bỏ các phụ thuộc mà nó đã cài đặt.

Vì vậy, ý tưởng đầu tiên của tôi là lập một danh sách các gói mới, và sau đó thực hiện một rpm -etrong những gói đó khi tôi gỡ cài đặt ruby.

Câu hỏi

Làm thế nào để tạo danh sách đó một cách tự động?

Hoặc có cách nào dễ dàng hơn để quản lý tệp văn bản với tên gói vòng / phút không?


Câu trả lời:


21

yum giữ lịch sử của riêng nó, vì vậy bạn có thể tìm hiểu khi gói được cài đặt hoặc cập nhật bằng lịch sử của gói.

Chẳng hạn, yum history packages-info rubysẽ cung cấp cho bạn tất cả các giao dịch liên quan đến ruby, trong đó giao dịch cũ nhất thường là giao dịch được cài đặt.

Transaction ID : 102
Begin time     : Thu Apr  3 17:15:17 2014
Package        : ruby-2.0.0.353-16.fc20.x86_64
State          : Install
Size           : 64,734
Build host     : buildvm-17.phx2.fedoraproject.org
Build time     : Thu Nov 28 06:01:20 2013
Packager       : Fedora Project
Vendor         : Fedora Project
License        : (Ruby or BSD) and Public Domain
URL            : http://ruby-lang.org/
Source RPM     : ruby-2.0.0.353-16.fc20.src.rpm
Commit Time    : Mon Nov 25 07:00:00 2013
Committer      : V?t Ondruch <vondruch@redhat.com>
Reason         : user
Command Line   : install ruby rubygems
From repo      : updates
Installed by   : Michael Hampton <error>

Điều này sẽ cung cấp cho bạn ID giao dịch, sau đó bạn có thể tra cứu và tìm các phụ thuộc đã được cài đặt, ví dụ như với yum history info <ID>.

Transaction ID : 102
Begin time     : Thu Apr  3 17:15:17 2014
Begin rpmdb    : 2336:55d492c6f5d091f328529861bdf95111264337f6
End time       :            17:15:20 2014 (3 seconds)
End rpmdb      : 2346:ccca040d610665c49a1ff6a11f787f8d5aa6790d
User           : Michael Hampton <error>
Return-Code    : Success
Command Line   : install ruby rubygems
Transaction performed with:
    Updated       rpm-4.11.2-2.fc20.x86_64                @updates/20
2 packages excluded due to repository priority protections
    Updated       yum-3.4.3-137.fc20.noarch               ?
    Updated       yum-metadata-parser-1.1.4-9.fc20.x86_64 @fedora/20
Packages Altered:
    Install     ruby-2.0.0.353-16.fc20.x86_64           @updates/20
    Dep-Install ruby-irb-2.0.0.353-16.fc20.noarch       @updates/20
    Dep-Install ruby-libs-2.0.0.353-16.fc20.x86_64      @updates/20
    Dep-Install rubygem-bigdecimal-1.2.0-16.fc20.x86_64 @updates/20
    Dep-Install rubygem-io-console-0.4.2-16.fc20.x86_64 @updates/20
    Dep-Install rubygem-json-1.7.7-101.fc20.x86_64      @fedora/20
    Dep-Install rubygem-psych-2.0.0-16.fc20.x86_64      @updates/20
    Dep-Install rubygem-rdoc-4.0.1-2.fc20.noarch        @fedora/20
    Install     rubygems-2.1.11-115.fc20.noarch         @updates/20
    Dep-Install rubypick-1.1.1-1.fc20.noarch            @updates/20

Nếu gói vừa được cài đặt và chưa được cập nhật, bạn có thể quay lại giao dịch với, vd yum history undo 102. Điều này sẽ không hoạt động nếu bất kỳ gói nào đã được cập nhật kể từ khi cài đặt, vì nó phù hợp với tên, phiên bản và bản phát hành.

Và nếu bạn thực sự chỉ cài đặt các gói, bạn có thể bỏ qua mọi thứ khác và chạy yum history undo lastđể phục hồi giao dịch gần đây nhất.


7

Bạn có thể loại bỏ chúng với yum autoremove.


3
Khi tôi thử điều này, nó đã đề xuất loại bỏ một vài gói không cần thiết, cùng với một bó mà tôi đã cài đặt rõ ràng và muốn. Tôi sẽ rất cẩn thận khi sử dụng này.
Michael Hampton

yum autoremovesẽ loại bỏ tất cả các gói được yêu cầu cho các gói không còn có sẵn. Nếu bạn muốn giữ chúng trong suốt thời gian yum autoremove, hãy đặt chúng thành cài đặt thủ công trước.
Mast

"yum autoremove" không hoạt động trong centos 6.6 "Không có lệnh như vậy: autoremove. Vui lòng sử dụng / usr / bin / yum --help"
c4f4t0r
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.