yum deve erro quando um pacote não está disponível

10

Recentemente encontrei um bug em um script no qual tentei fazer o seguinte:

yum -y install another_package.x86_64 some_package.x86_64 && run_my_script

O script funcionou bem em um novo CentOS, mas quando tentei executá-lo no Cent OS 5, some_package.x86_64 não estava disponível. Mas em vez de errar e parar yum , acabou de imprimir a mensagem:

No package some_package.x86_64 available.

Como posso forçar o yum ao erro em tais situações (qual IMO deve ser o padrão) para tornar meus scripts mais robustos?

    
por pmr 28.05.2015 / 11:26

2 respostas

10

Como você descobriu, esse comportamento mudou entre o RHEL 5 e o 6 (consulte link para alguns discussão). A partir desse link, a verificação do código de retorno de yum info <pkg> deve permitir que você aborte seu script conforme necessário. Algo como:

# Set a variable containing the packages to install:
pkgs_to_install='another_package.x86_64 some_package.x86_64'

# Loop over the packages in the list:
for pkg in ${pkgs_to_install}; do
  # Stop executing if at least one package isn't available:
  yum info ${pkg} >> /dev/null 2>&1 || exit
done

# Continue running your original script:
yum -y install ${pkgs_to_install} && run_my_script
    
por 28.05.2015 / 12:47
3

Por Bug 1274211 , isso foi corrigido no yum-3.4.3-133.el7. No entanto, você precisa ativar o modo estrito.

A maneira mais fácil de fazer isso para fins de script é por meio da opção de linha de comando:

yum -y --setopt=skip_missing_names_on_install=False install another_package.x86_64 some_package.x86_64 && run_my_script

No entanto, você também pode configurá-lo como uma opção de configuração em yum.conf :

[main]
skip_missing_names_on_install=0
    
por 25.07.2018 / 00:06