初めての VPS-#6 (自分用のリポジトリを作る)。

 現在,さくらの VPS に event + suEXEC + FPM で WEB サーバを構築しようとしている。そのために,前回, ‘--enable-fpm’ 付きの php.rpm を作ったわけだが, ‘rpm -ivh’ でインストールするときの依存関係でうんざりしたので,自分用にリポジトリを作ることにした(爆)。

    VPS 上。

  1. $ sudo adduser --gid xxxx myrepo
    ‘myrepo’ はリポジトリ用のユーザで, ‘xxxx’ は httpd ユーザグループの gid である。
    $ sudo passwd myrepo
  2. $ sudo chmod 710 /home/myrepo
  3. $ sudo su - myrepo
  4. $ mkdir public_html
  5. $ cd public_html
  6. $ mkdir x86_64
  7. $ exit

 まだ,記事にしていないのだが,実はすでに Apache httpd で suEXEC サポート用の構築をしている。そんなわけで, User と Group はそれ用のものがあるわけだ。この記事に出てくる設定で,ご自分用のリポジトリを作る場合は,各自のシステムに合わせて,用語を読み替えていただきたい。
 
 httpd conf から ‘Options Indexes’ を削除してあるのだが,リポジトリのディレクトリについては,インデックスを表示したい。そのためには, .htaccess において, ‘Options Indexes’ が使えないといけないので,以下のところを変えた。

    VPS の httpd conf において。

  1. userdir.conf (/etc/httpd/conf.d/userdir.conf) の次のところを変えた。
    UserDir enabled normuser1 —>> UserDir enabled normuser1 myrepo
        ↑ これは .htaccess のためではなく, ‘myrepo’ を使えるようにするためである。
    AllowOverride FileInfo AuthConfig Limit Indexes
    —>> AllowOverride FileInfo AuthConfig Limit Indexes Options=Indexes
  2. $ sudo systemctl restart httpd.service
  3. $ sudo su - myrepo
  4. $ cd public_html/x86_64
  5. $ vi .htaccess
    中身は ‘Options Indexes’ の一行。
  6. $ chmod 640 .htaccess
  7. $ exit
    開発用 VM 上。

  1. ‘rpmbuilder’ としてログオンし, rpm ファイルをリビルドする。
     
    注 1) 「初めての VPS-#5」において php.rpm のリビルドについて書いたわけだが,あのままで yum をやると,「パッケージ PACKAGE_NAME.rpm は署名されていません」と言われる。 yum を使うためには, rpm に署名がいるらしい。署名なしの rpm をインストールするには, ‘--nogpgcheck’ オプションを使う。 filezilla.rpm については,その方法でインストールした。
  2. リビルドした rpm ファイルに署名する。
    $ rpm --addsign rpmbuild/RPMS/x86_64/*
     
    当たり前だが,この作業前に GPG キーを作っておかないといけないので,作り方。

    • root 特権のユーザで VM にログオンする。
      $ sudo gpg --gen-key
      $ sudo gpg --export -a 'o6asan' > RPM-GPG-KEY-o6asan
      RPM-GPG-KEY-o6asan は公開鍵のファイルである。これを VPS の myrepo のドキュメントルート内の /x86_64 に Filezilla クライアントでアップロードする。
      $ sudo gpg -o file.secret --export-secret-key o6asan
      file.secret が秘密鍵である。これは, rpmbuilder の ホームディレクトリに移動する。
      $ sudo mv /home/vmowner/file.secret /home/rpmbuilder/file.secret
    • ‘rpmbuilder’ として VM にログオンする。
      $ gpg --import file.secret
      このコマンドは,秘密鍵,公開鍵ともにインポートしてくれる。
       
      $ vi .rpmmacros
      以下の 2 行を追記する。
      %_signature gpg
      %_gpg_name <Owner name>
       
      注 2) 実のところ,リビルドは ‘rpmbuilder’ でやるので,鍵も ‘rpmbuilder’ として作ろうとしたのだが,蹴られた。鍵の作成作業には, root 特権が必要なようである。
  3. すべての rpm ファイルを VPS の myrepo のドキュメントルート内の /x86_64 にアップロードする。
  4. VPS 上。
    $ sudo yum install createrepo
    $ sudo createrepo /path to/x86_64

 やっと,リポができたワイ。 URL は http://www17130ue.sakura.ne.jp/~myrepo/x86_64/
 次回は,使い方を書くつもり。