Bereits installierte Pakete in „yum install“ überspringen?

Bereits installierte Pakete in „yum install“ überspringen?

Wenn ein Paket bereits installiert ist, versucht „yum install“ anscheinend, es auf die neueste Version zu aktualisieren. Dies führt dazu, dass „yum install“ fehlschlägt, wenn der neuesten Version Abhängigkeiten fehlen. Ich weiß, dass ich dies mit unterdrücken kann --skip-broken, aber ich möchte „kaputt überspringen“ nicht, wenn es sich um Pakete handelt, die noch nicht installiert sind; in diesem Fall möchte ich, dass es fehlschlägt.

Ich habe gesehen indiese Antwortdass ich dies mit einer „if“-Anweisung tun kann, wenn ich nur ein Paket installiere, ich aber eine „yum install“-Anweisung mit etwa 15 Paketen habe und diese nicht yummehrere Male ausführen möchte (einmal für jedes Paket), da dies einen großen zusätzlichen Aufwand bedeutet.

Wie kann ich erreichen, dass yumPakete nur dann installiert werden, wenn sie noch nicht vorhanden sind?

Antwort1

Am Ende habe ich yum-install-if-missing.shbasierend auf anderen Antworten ein einfaches Bash-Skript geschrieben. Ich bin mir nicht sicher, ob es einen einfacheren Weg gibt.

#!/bin/bash

yumcmd="yum install -y"
for var in "$@"
do
    if ! rpm --quiet --query $var; then
        yumcmd="$yumcmd $var"
    fi
done

echo "ABOUT TO EXECUTE: $yumcmd"

eval $yumcmd

Es kann dann wie folgt ausgeführt werden: yum-install-if-missing.sh packageone packagetwound so weiter.

verwandte Informationen