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 yum
mehrere Male ausführen möchte (einmal für jedes Paket), da dies einen großen zusätzlichen Aufwand bedeutet.
Wie kann ich erreichen, dass yum
Pakete nur dann installiert werden, wenn sie noch nicht vorhanden sind?
Antwort1
Am Ende habe ich yum-install-if-missing.sh
basierend 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 packagetwo
und so weiter.