前回作ったリポジトリの使い方を書こうと思う。
リポジトリを利用しようと思う CentOS7 にログインする。例えば, VPS とか,開発用の VM とか。
- ‘yum-plugin-priorities’ をインストールする。
Base, Updates, Extras リポジトリの優先度が高いので,この 3 つが有効で,なおかつ同じパッケージがこれらの中にあると,デフォルトのままでは自前リポのパッケージは使ってもらえない。この件は,その都度マニュアルで対処することもできるのだが,よく使うリポについては, ‘yum-plugin-priorities’ を利用するほうが,面倒がなくていい。
$ sudo yum install yum-plugin-priorities
よく使うリポについては,プライオリティをセットしておくべきだが,どのリポジトリを有効にしているかという情報が必要になる。忘れちゃっていることも多いもんネ。そんなときは,下記で調べる。
$ yum repolist
‘yum repolist all’ とやれば,有効・無効にかかわらずすべてのリポジトリが,列挙されまっさ。
- /etc/yum.repos.d に myrepo.repo を作成する。
$ sudo vi /etc/yum.repos.d/myrepo.repo
中に書くのは,下記のようなこと。
[myrepo]
name=o6asan’s original RPM packages
baseurl=http://www17130ue.sakura.ne.jp/~myrepo/x86_64/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-o6asan
priority=1
- /etc/yum.repos.d/CentOS-Base.repo の[base], [updates], [extras] の各エリアの最終行に ‘
priority=2
‘ を追記する。
- $
wget http://www17130ue.sakura.ne.jp/~myrepo/x86_64/RPM-GPG-KEY-o6asan
$ sudo mv RPM-GPG-KEY-o6asan /etc/pki/rpm-gpg/
準備完了。自前リポジトリの 1 回目の使用時に, CentOS7 が RPM-GPG-KEY-o6asan をインポートしていいか聞いてくるので, ‘y’ を入力する。
注) クライアント PC から公開鍵を削除する方法。
クライアント PC には秘密鍵はないので, ‘gpg --delete-key <email@address>’ をやっても, ‘Unknown system error’ が戻ってくるだけで,削除はしてくれなかった。下記を使うとうまくいった。
$ sudo rpm -e [package]
当然ながら,正確なパッケージ名がいるが,それは下記で調べることができる。
$ rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}n'
例えば, CentOS-7 Key については,下記が戻ってくる。
gpg-pubkey-f4a80eb5-53a7ff4b –> gpg(CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>)
なので,
$ sudo rpm -e gpg-pubkey-f4a80eb5-53a7ff4b
とやると,削除することができる。
追記:
あとで気付いたが, Apache の rpm を作ったときの記述だと,秘密鍵なしの状況でも gpg --delete-key RSA鍵ID で公開鍵を消せたと書いてある。今回はできなかったんだが,なんでだろ。バグだったりして。