私たちが構築したローカルyumリポジトリを通じてChef-11.16.4-1.el6.x86_64.rpmをサーバーで使用できるようにしようとしています。
RHELリポジトリでは使用できないため、手動でダウンロードしてリポジトリに保存する必要があります。
yum repoサーバーで私がしたことは次のとおりです。
1. cd /packages/rhel65-base/; wget https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chef-11.16.4-1.el6.x86_64.rpm
2. createrepo /packages/rhel65-base/
Yumクライアントは利用可能な新しいパッケージを見ることができます。
[user1@testserver01 ~]$ yum list chef
Loaded plugins: amazon-id, rhui-lb, security
Installed Packages
chef.x86_64 11.16.0-1.el6 installed
Available Packages
chef.x86_64 11.16.4-1.el6 local-rhel65-base
ただし、最新の Chef パッケージをインストールしようとすると、次のエラーが表示されます。
warning: rpmts_HdrFromFdno: Header V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
Public key for chef-11.16.4-1.el6.x86_64.rpm is not installed
Chef rpmがまだ署名されていないと仮定し、次のように直接署名しようとしました。https://iuscommunity.org/pages/CreatingAGPGKeyandSigningRPMs.htmlしかし、それでも動作することはできません。
Chef Webサイトで見つけることができるいくつかの有用な情報は、パッケージのSHA1チェックサム値です。
この問題を解決するためのアイデアや提案がある人はいますか?ありがとうございます!
答え1
最も簡単な解決策は、パッケージが署名されていない場合ですyum --nogpgcheck install chef
。ローカルストレージがある場合は、以下を設定できます。
gpgcheck=no
その.repo
ファイルに。
答え2
ここでの問題は、パッケージに署名されたキーをこのストアの有効なGPGキーとして受け入れるようにサーバーを構成していないことです。
最も簡単な解決策はもちろんyumを実行することですnogpgcheck
。もちろんそれもそれほど安全ではありません。ただし、パッケージをダウンロードして検証した後に改ざんされる可能性がない場所に保管した場合は、許可される可能性があります。
これが許可されていない場合は、パッケージの署名に使用されているキーの公開部分を取得し、パッケージをインストールするサーバーに配置する必要があります。そこにキーをコピーして実行するだけですrpm -i /path/to/RPM-GPG-KEY-REPONAME
。
キーは通常になければなりません/etc/pki/rpm-gpg/RPM-GPG-KEY-REPONAME
。また、リポジトリのリポジトリファイルに/etc/yum.repos.d
次の行が含まれていることを確認してください。
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-REPONAME
gpgcheck=1
答え3
古い質問ですが、それでも価値があり、答えは誤解を招く情報を防ぐことができると思います。メッセージが示すように、パッケージは次のように署名されます。
Public key for chef-11.16.4-1.el6.x86_64.rpm is not installed
しかし、キーはまだインストールされていません。このパッケージキーを検索してみましたが、そのURLが見つかりませんでした(実際にここに来た理由はまさにそれです)。発見/確認されたら、以下からインポートできます。
rpm --import <url>
@larsksのソリューション障害のあるGPGキーを確認してください。