Parece que se um pacote já estiver instalado, "yum install" tentará atualizá-lo para a versão mais recente. Isso fará com que "yum install" falhe se a versão mais recente não tiver dependências. Eu sei que posso suprimir isso com --skip-broken
, mas não quero "pular quebrado" no caso de pacotes que ainda não estão instalados; nesse caso, quero que falhe.
eu vi emesta respostaque posso fazer isso usando uma instrução "if" se estiver instalando apenas um pacote, mas tenho uma instrução "yum install" contendo cerca de 15 pacotes e não quero executar yum
várias vezes (uma para cada pacote) como este adiciona muita sobrecarga.
Como posso yum
instalar apenas pacotes se eles ainda não estiverem presentes?
Responder1
No final, escrevi um script bash simples yum-install-if-missing.sh
baseado em outras respostas. Não tenho certeza se existe uma maneira mais fácil.
#!/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
Pode então ser executado como: yum-install-if-missing.sh packageone packagetwo
e assim por diante.