Comment désinstaller les dépendances nouvellement installées pour un package RPM?


16

Existe-t-il un moyen simple de dresser une liste des dépendances avec lesquelles un package RPM nouvellement installé sera installé yum?

Exemple: Si vous le faites, yum install rubyil installera également quelques rubygems.

Mais lorsque je désinstalle le rubypackage, je veux également me débarrasser des dépendances qu'il a installées.

Donc, ma première idée a été de faire une liste de ces nouveaux packages, puis d'en faire un rpm -elors de la désinstallation ruby.

Question

Comment faire une telle liste de manière automatisée?

Ou existe-t-il un moyen plus simple de gérer les fichiers texte avec les noms de package rpm?


Réponses:


21

yum conserve son propre historique, afin que vous puissiez savoir quand un package a été installé ou mis à jour à l'aide de son historique.

Par exemple, yum history packages-info rubyvous donnera toutes les transactions impliquant ruby, où la plus ancienne est généralement celle où le package a été installé.

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>

Cela vous donnera l'ID de transaction, que vous pouvez ensuite rechercher et trouver les dépendances qui ont été installées, par exemple avec 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

Si le package vient d'être installé et n'a pas encore été mis à jour, vous pouvez annuler la transaction avec, par exemple yum history undo 102. Cela ne fonctionnera pas si l'un des packages a été mis à jour depuis l'installation, car il correspond au nom, à la version et à la version.

Et si vous venez d' installer les packages, vous pouvez ignorer tout le reste et exécuter yum history undo lastpour annuler la transaction la plus récente.


7

Vous pouvez les supprimer avec yum autoremove.


3
Quand j'ai essayé cela, il a proposé de supprimer quelques paquets inutiles, ainsi que tout un tas que j'avais explicitement installé et que vous voulez. Je serais très prudent lors de l'utilisation de cela.
— Michael Hampton

yum autoremovesupprimera tous les packages requis pour les packages qui ne sont plus disponibles. Si vous souhaitez les conserver pendant yum autoremove, définissez-les d'abord sur installés manuellement.
— mât

"yum autoremove" ne fonctionne pas dans centos 6.6 "Aucune commande de ce type: autoremove. Veuillez utiliser / usr / bin / yum --help"
— c4f4t0r
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.