Pode-se importar uma chave com:
rpm --import / caminho / para / chave
Mas como saber depois se você já importou essa chave? Tentar reimportá-lo falhará com um erro e estou tentando evitar isso, pois estou usando o Puppet para instalar a chave.
Pode-se importar uma chave com:
rpm --import / caminho / para / chave
Mas como saber depois se você já importou essa chave? Tentar reimportá-lo falhará com um erro e estou tentando evitar isso, pois estou usando o Puppet para instalar a chave.
Respostas:
Você pode verificar se uma chave já foi importada usando rpm -qi gpg-pubkey-<version>-<release>
. Se estiver instalado, o rpm fornecerá todas as informações sobre ele; caso contrário, ele sairá com um valor de retorno 1, para que você possa adicionar à sua receita de marionetes um unless
parâmetro:
exec { "rpm --import /path/to/package":
# ...
unless => "rpm -qi gpg-pubkey-<version>-<release> > /dev/null 2>&1"
}
KEYID=$(gpg --throw-keyids $KEYFILE | sed -n '/^pub/s|^[^/]*/\([[:alnum:]]*\) .*|\1|p' | tr [[:upper:]] [[:lower:]])
Cada chave importada adiciona uma entrada rpmdb de gpg-pubkey-<left(hex(fingerprint), 8)>-<encoded import date>
. Basta verificar o nome ( gpg-pubkey
) e a versão apropriada (os 8 primeiros caracteres da impressão digital da chave em hexadecimal) no rpmdb.
rpm -qi gpg-pubkey-FINGERPRINT-\* > /dev/null 2>&1
(referência, incluindo como obter o FINGERPRINT
: robinbowes.com/article.php/20081107174415581 )
Se você deseja apenas verificar se a chave foi importada (sem processar programaticamente essas informações), é possível listar todas as chaves como esta:
rpm -qi gpg-pubkey-\* | grep -E ^Packager
ou para os IDs:
rpm -qi gpg-pubkey-\* | grep -E "^Version "
Isso pode parecer bastante óbvio para muitos, mas acho que, para alguns, é uma resposta mais direta (pelo menos no título) da pergunta.
KEYFILE=/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release; KEYID=$(echo $(gpg --throw-keyids < $KEYFILE)|cut -c11-18|tr [A-Z] [a-z]); rpm -q gpg-pubkey-$KEYID