IT pass HikiWiki - [ITPASS2009]gate-toroku-systemの開発とメンテナンス Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

{{toc}}

((<ITPASSサーバ構築ドキュメント|ITPASSサーバ構築ドキュメント#gate-toroku-system>))へ戻る

= 開発メンバー

* 現在の開発メンバー
  * ((<村上 真也|URL:/~murashin>))
  * ((<佐々木 洋平|URL:/~uwabami>))
  * ((<納多 哲史|URL:/~noda>))

* 過去の開発メンバー
  * ((<森川 靖大|URL:/~morikawa>))

= 神戸版 gate-toroku-system

神戸大学 地球および惑星大気科学研究室の ITPASS サーバの
ユーザ管理には ((<gate-toroku-system (神戸 ITPASS サーバ用)|URL:/~gate>))
を用いる.
このソフトウェアは元々北大理学の
((<EP計算機ネットワーク 技術支援グループ|URL:http://www.ep.sci.hokudai.ac.jp/~epcore>))
で開発されたユーザ管理用ソフトウェアで,
ITPASS サーバではこのソフトウェアを ITPASS サーバ用に修正を行って
導入している.

現在, gate-toroku-system 最新版は
((<電脳サーバ|URL:http://www.gfd-dennou.org>))
で管理されており,
これを神戸版 gate-toroku-system の初版として cvsroot を作成する.

以下に

  * ((<URL:#初版の cvsroot の作成メモ>))
    (gate-toroku-system の開発とメンテナンスのための環境整備)
  * ((<URL:#日常の開発とメンテナンス作業の覚書>))

を記す.


# gate-toroku-system は非公開のため, 以下は編集時にしか見えないよう
# にしておく.
#
# == 電脳サーバからのダウンロード
#
# CVS に関する環境変数を指定後, cvs checkout で最新版を取得する.
#
#   $ export CVSROOT=:ext:www.gfd-dennou.org:/GFD_Dennou_Club/dc-arch/gate/cvsroot
#   $ export CVS_RSH=ssh
#   $ cvs checkout -r dennou gate-toroku-system

= 初版の cvsroot の作成メモ

== 必要なソフトウェアのインストール

以下のコマンドで, 開発やメンテナンスに必要なパッケージをインストールします.
なお, 以下の perl 関連のパッケージ名は Debian GNU/Linux 4.0
(コードネーム etch) の場合のものなので, Debian のバージョンによって
変更される可能性が高いので注意のこと.

  # apt-get install cvs
  # apt-get install kcc
  # apt-get install qkc
  # apt-get install libjcode-pm-perl
  # apt-get install libcrypt-passwdmd5-perl
  # apt-get install libdatetime-perl
  # apt-get install libdatetime-format-strptime-perl

== 余分なファイルの削除, 文字コードの修正

新たに cvsroot を作成するため, gate-toroku-system 内の余計なディレクトリ
やファイルを削除する. ls -aR でディレクトリ内のファイルを眺め,
不要なドットファイルなども削除しておくこと.

  $ cd gate-toroku-system
  $ rm -frv `find -name CVS`

また, 文字コードは 1 種類に統一したいため, kcc で文字コードのチェックを行う.
今回は EUC に統一することを考えているので, 異なるものがある場合には qkc
で変更すること.

  $ kcc -c `find -name '*'`
             :
  ./make-smtppasswd/Makefile:     ASCII
  ./make-smtppasswd/gate-make-smtppasswd.PL:      7-bit JIS [ESC$B, ESC(B]
  ./user-status/gate-user-status.PL:      EUC
  ./user-status/Makefile: ASCII

  $ qkc -e -u ./make-smtppasswd/gate-make-smtppasswd.PL

== gate ユーザの作成

CVS リポジトリは /home/gate 以下に作成するため, gate ユーザを以下のように
作成する.

  # adduser --uid 500 --disabled-password gate

フルネームには "Administrator of gate-toroku-system" を入力する.

== CVS リポジトリの作成

  # su gate
  $ umask 002
  $ cd
  $ cvs -d /home/gate/cvsroot init

== グループ書き込み許可の設定

上記で umask などの設定をおこなったものの, s ビットを立てるなど,
パーミッションの設定が必要となる. また cvs init コマンドで
作成したディレクトリやファイルの中にはグループ書き込み権限が
無いものもあるので, 以下で設定する.

=== リポジトリ cvsroot パーミッションの設定

cvsroot 以下で作成されるファイル, ディレクトリのグループを
gate にするため, cvsroot に s ビットを立て, 書き込み権限を
与える. 念のためにグループも gate に設定する.

  $ chmod g+s cvsroot
  $ chmod g+w cvsroot
  $ chgrp gate cvsroot
  
=== 管理用ディレクトリ CVSROOT 内のパーミッションの設定

cvsroot が作成されれば, そのリポジトリに関する CVS の動作を
制御する CVSROOT ディレクトリも作成されているはずである.

このディレクトリ, およびそれ以下の特定のファイルに関して
グループの変更と書き込み権限変更をおこなう.

: CVSROOT ディレクトリ本体

グループを gate とし, グループに書き込み権限を与える.
(これは少しアンセキュアな方針かもしれない. よりセキュアな
方法として, 代表的な管理者 1 人にのみ書き込み権限を与える
という方針もあり得るだろう).

  $ cd cvsroot
  $ chgrp gate CVSROOT
  $ chmod g+s CVSROOT
  $ chmod g+w CVSROOT

: history, val-tags へグループ書き込み権限を与える

CVSROOT 以下にある history, val-tags にグループ書き込み権限
を与える. (グループは既に gate であると仮定している).

なお, history とはこのリポジトリ以下のプロジェクトに対して
行なわれた checkout, commit, rtag, update, release を記録
しているファイルである. cvs history コマンドで見ることが出来る.
(動作の詳細は cvs history -x コマンドを参照のこと).
ここではグループ gate で開発することを念頭に置くため,
グループに書き込み権限を与えておく.

  $ cd CVSROOT
  $ chmod g+w history

val-tags は検索を高速化するために, 有効なタグ名をキャッシュ
しているファイルである. GATE プロジェクトではタグも使用するので,
これにもグループ書き込み権限を与える.

  $ chmod g+w val-tags

== gate-toroku-system プロジェクト開始

gate-toroku-system ディレクトリ内に移動し, cvs import でプロジェクトを
開始する.

  # su gate
  $ umask 002
  $ cd gate-toroku-system
  $ export CVSROOT=/home/gate/cvsroot

  $ cvs import -m "gate-toroku-system" gate-toroku-system gate Initial

== プロジェクトのパーミッションの確認

プロジェクトのディレクトリのパーミッションを確認しておく.

  $ ls -l /home/gate/cvsroot
  drwxrwsr-x  3 gate gate 4096 2007-08-15 17:18 CVSROOT
  drwxrwsr-x 39 gate gate 4096 2007-08-15 17:44 gate-toroku-system

上記のようにグループが gate で権限が rws の場合は問題ない.  もしそうで
ないのなら, 以下のコマンドでグループとパーミッションを変更すること.

  $ chgrp gate gate-toroku-system
  $ chmod g+s gate-toroku-system
  $ chmod g+w gate-toroku-system

なお, もしも gate-toroku-system が上記のようなパーミッションになってい
なかった場合, それよりも下層ディレクトリのパーミッションもそれと同様な
可能性がある. それらに関してもグループとパーミッションを設定すること.
調べるには以下のコマンドが便利であろう.

  $ cd /home/gate/cvsroot/gate-toroku-system
  $ ls -dl `find -type d`

* プロジェクト以下にある「ファイル」に関しては (グループは gate
  である必要があるが) パーミッションは (({-r--r--r--}))
  で問題ない. cvs コマンドを介せば, 正しく commit, add, remove
  などが可能である.

== CVS リポジトリのカスタマイズ

((<URL:http://www.gfd-dennou.org/library/cc-env/cvs/>))
を参考に, 以下の作業を行う. 作業手順に関しては以下を参照のこと.

* cvs リポジトリのカスタマイズ
  * commit をメール通知する設定
  * バイナリファイルを安全に登録するために
  * euc のファイルのみ登録するには
  * commit メッセージを euc のみに

なお, メール通知の際の宛先は ITPASS サーバの gate-toroku-system
開発グループ とし, ファイルの文字コードは EUC とする.


= 日常の開発とメンテナンス作業の覚書

== CVS を利用して開発・メンテナンス

日常 gate-toroku-system を開発する際には, CVS を解して作業すること.
間違っても /home/gate/gate-toroku-system 以下のソースを直接編集しては
いけない.

CVS に関しては
((<CVS に関するメモ (地球流体電脳倶楽部)|URL:http://www.gfd-dennou.org/library/cc-env/cvs/>))
など, Web や書籍を参照のこと.


== tar.gz ファイルの作成

CVS で一通りの作業を行った後は ITPASS サーバ上の /home/gate 以下に
gate-toroku-system.tar.gz を設置すること. 設置のための作業は以下の通り

  $ sudo -u gate -s

# 以前書かれていた
#    $ sudo -u gate -H
# では gate ユーザに成り代われなかったため, オプションを変えた.

  $ cd /home/gate
  $ export CVSROOT=/home/gate/cvsroot    # (bash の場合)
  $ cvs checkout gate-toroku-system
  $ cd gate-toroku-system
  $ perl config.pl
  $ make tar
  $ cd ..
  $ ls -l gate-toroku-system.tar.gz   # tar.gz ファイルが作成されたことを確認
                                      # 日付を確認して今作成されたことをチェック
  $ rm -rf gate-toroku-system         # ディレクトリは削除


== 電脳サーバ版 gate-toroku-system へのフィードバック

改変については電脳サーバの gate-toroku-system へも反映すること.
基本的には dcstaff_at_gfd-dennou.org へ連絡し, 電脳サーバのアカウント
の取得と gate グループへの加入を行ってもらい, 電脳サーバの
gate-toroku-system をこれまた CVS で編集すること.

== タグの利用について

普段のバグフィックスなどに関してタグは貼っていないが, 内容を大きく変更
する前にはタグを張ること, タグのフォーマットは, 電脳サーバの
gate-toroku-system に合わせ, 以下のようにしている. このタグは
電脳サーバの gate-toroku-system と同じようにしておくこと.

  GATESYSTEM-5th-STABLE
             ^^^
             ここは書き換えること

((<ITPASSサーバ構築ドキュメント|ITPASSサーバ構築ドキュメント#gate-toroku-system>))へ戻る