Existe-t-il un moyen d'installer et de supprimer des packages dans une seule commande yum?

19

Existe-t-il un moyen d'ajouter et de supprimer des packages en même temps avec une seule yumcommande? Par exemple, installer postfix et supprimer sendmail sans exécuter deux commandes / transactions distinctes.

Michael Ekstrand
la source
Pas à ma connaissance, mais je ne suis pas un utilisateur quotidien miam. Pourquoi le voulez-vous en une seule commande?
jippie
@jippie Convenience, surtout. Et en réduisant le temps pour configurer plusieurs transactions.
Michael Ekstrand

Réponses:

25

Oui. L'invocation yum shellvous permettra de spécifier plusieurs commandes qui se produiront simultanément lors de la runsaisie.

Ignacio Vazquez-Abrams
la source
2
Génial, c'est exactement ce que je cherchais.
Michael Ekstrand
1
J'avais initialement utilisé Python pour cela. J'ai maintenant réduit mon script à environ 20% de la taille en utilisant BASH!
quickshiftin
20

Les versions plus récentes de yum ont également la swapcommande:

# yum swap -- install foo -- remove bar
Michael Ekstrand
la source
Au moins à partir de maintenant ( yumsur RHEL 7), cela peut également être écrit plus court comme yum swap bar foo.
Axel Beckert
8

Comme la réponse acceptée le dit déjà, vous pouvez utiliser yum shellpour exécuter plusieurs commandes à la fois, ce qui est bien pour une utilisation interactive. Mais si vous souhaitez appeler cette commande à partir d'un script, vous pouvez également l'exécuter sur un fichier, par exemple yum shell translist.txt, où le fichier pourrait contenir, par exemple:

remove squid
install squid34
run

Ajoutez le -ycommutateur pour supposer oui aux invites de confirmation.

djluko
la source
1
Le -ycommutateur est ajouté à la yum shellcommande, pas aux commandes dans le shell, non? Je pense (mais je n'ai pas testé) que l'ajout config assumeyes 1en haut des commandes du shell aura le même effet sans avoir besoin de changer la ligne de commande initiale.
mattdm
oui, yum shell -yfonctionne pour moi pour rendre toute l'opération non interactive.
RubyTuesdayDONO