Eu gerencio meus sistemas RHEL 6/7 com yum apontado para um repositório local que é uma réplica do repositório oficial da Red Hat.
Outras pessoas instalaram versões mais recentes de alguns pacotes da seguinte forma:
rpm -i <package name>-<newer version>-<release number of newer version>.rpm
Eu preferiria que eles me dessem o .rpm porque assim eu poderia colocá-lo em meu repositório, executar createrepo para reconstruir o repositório com a versão mais recente do pacote e, em seguida, atualizar o pacote da seguinte maneira:
yum update <package name>
Como posso identificar pacotes instalados para os quais a versão do pacote instalado é mais recente que a versão no meu repositório?
Observe que isso é o oposto de yum update , que identifica os pacotes instalados para os quais a versão do pacote instalado é mais antiga que a versão do meu repositório.
Eu acho que, além de fazer o script, não há maneira fácil.
O script implica que você obtenha uma lista de todos os pacotes instalados e,
rpm -qa
em seguida, busque qual é a versão mais recente do repositório, usandorepoquery
. E compare se as últimas versões são mais antigas que as anteriores.Para acelerar um pouco isso, você pode agir apenas em pacotes que parecem estar instalados além dos repositórios. Portanto, em vez de comparar as versões de todos os pacotes de
rpm -qa
, você usará uma lista de:... que obterá a lista de pacotes instalados via
yum install /path/to/some.rpm
e:
... obterá a lista de pacotes instalados via
rpm -i /path/to/rpm