初めての VPS-#7 (自分用のリポジトリの使い方)。

 前回作ったリポジトリの使い方を書こうと思う。

 リポジトリを利用しようと思う CentOS7 にログインする。例えば, VPS とか,開発用の VM とか。

  1. ‘yum-plugin-priorities’ をインストールする。
    Base, Updates, Extras リポジトリの優先度が高いので,この 3 つが有効で,なおかつ同じパッケージがこれらの中にあると,デフォルトのままでは自前リポのパッケージは使ってもらえない。この件は,その都度マニュアルで対処することもできるのだが,よく使うリポについては, ‘yum-plugin-priorities’ を利用するほうが,面倒がなくていい。
    $ sudo yum install yum-plugin-priorities
     
    よく使うリポについては,プライオリティをセットしておくべきだが,どのリポジトリを有効にしているかという情報が必要になる。忘れちゃっていることも多いもんネ。そんなときは,下記で調べる。
    $ yum repolist
     
    ‘yum repolist all’ とやれば,有効・無効にかかわらずすべてのリポジトリが,列挙されまっさ。
  2. /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
  3. /etc/yum.repos.d/CentOS-Base.repo の[base], [updates], [extras] の各エリアの最終行に ‘priority=2‘ を追記する。
  4. $ 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 で公開鍵を消せたと書いてある。今回はできなかったんだが,なんでだろ。バグだったりして。