前回作ったリポジトリの使い方を書こうと思う。
リポジトリを利用しようと思う 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 で公開鍵を消せたと書いてある。今回はできなかったんだが,なんでだろ。バグだったりして。
「初めての VPS-#7 (自分用のリポジトリの使い方)。」への2件の返信
おはようございます。
御自分用のリポジトリをおつくりになったんです。
でもあんまり登録しちゃうと管理が大変ですからねー。
ご注意ください。
俺は上書きされちゃうといやなんでnginxはとめちゃいました。
くりくりさん,こんばんは。
> 御自分用のリポジトリをおつくりになったんです。
はい,そうなんです。 PHP をビルドし直して,インストールしたら,結構依存関係がうざくて yum に慣らされてるなと(笑)。で, yum を使ってやろうと,リポジトリづくりに取り組みましたら,結構なハードル越えになってしまいました。
今回の VPS については続けて使う気はないのですが,先々, CentOS でサーバをたてて,自前リポジトリを使うときに,そこそこ,自動化した状態で使いたいなと思い,ちょっと勉強をということで GPG キーやら yum-plugin-priorities のインストールやらになりました。
> でもあんまり登録しちゃうと管理が大変ですからねー。
Windows と違ってそれほど新バージョンを追いかける気がないので,今のところは, –enable-fpm オプションの PHP と Filezilla だけです。増える可能性はありますが……
標準の Base, Updates, Extras のデフォルトのプライオリティはどこで設定されているのかわからなかったのですが,結構高いようで, yum-plugin-priorities を使って明示的に下げてやらないと,自前リポジトリの PHP は自動ではインストールされませんでした。プライオリティをきっちり設定しておけば,使ってほしくないリポジトリの rpm で上書きされることはないのではないですか。
自前リポジトリを priority=1 ,標準の Base, Updates, Extras を priority=2 とした場合,問題になるのは,脆弱性でパッチが出た場合に気づかないかもしれないことです。これは, CentOS-announce などに注意しておくしかないですかね。