você pode instalar dependendo da existência do pacote no sistema:
rpm -q mypackage || rpm -i mypackage.rpm
Desejo instalar alguns pacotes RPM de um script de shell. Eu quero garantir que cada pacote seja de fato instalado, mas eu não quero atualizar um pacote que já tenha uma versão mais antiga instalada (para evitar ir profundamente à resolução de dependências).
Como posso conseguir isso de tal forma que um caso em que uma versão mais antiga já esteja instalada retornará sem um código de erro, enquanto em outros casos de falhas haverá um código de erro retornado? Isso para que eu possa controlar a boa execução do script.
você pode instalar dependendo da existência do pacote no sistema:
rpm -q mypackage || rpm -i mypackage.rpm
Use o seguinte comando rpm -q mypackage && rpm -i mypackage.rpm
. Se a consulta do rpm for bem-sucedida, a instalação do pacote rpm prosseguirá. Senão Se a consulta falhar, a instalação não prosseguirá. No entanto, se você usar ||
em vez de &&
, então, apesar do comando anterior de consultar o pacote, ele tentará instalar o pacote, o que, de qualquer forma, não faz sentido.
E se você testar primeiro se o pacote em questão já está instalado e, caso contrário, você o instalará. Como você escreveu, você quer perceber isso dentro de um script Shell, isso seria algum tipo de if
-clause.
pseudocódigo:
if is_installed($package)
then
return is_already_installed
else
rpm -i $package
return $?
fi
A primeira parte poderia ser estendida por outro teste na versão atualmente instalada (por exemplo, para um relatório final do script).
Você pode encontrar rpm -q <package name>
útil ou mesmo rpm -U
para uma atualização.