[EPA2008]gate-toroku-systemの開発とメンテナンス
神戸版 gate-toroku-system
神戸大学 地球および惑星大気科学研究室の EPA サーバの ユーザ管理には gate-toroku-system (神戸 EPA サーバ用) を用いる. このソフトウェアは元々北大理学の EP計算機ネットワーク 技術支援グループ で開発されたユーザ管理用ソフトウェアで, EPA サーバではこのソフトウェアを EPA サーバ用に修正を行って 導入している.
現在, gate-toroku-system 最新版は 電脳サーバ で管理されており, これを神戸版 gate-toroku-system の初版として cvsroot を作成する.
以下に
- 初版の cvsroot の作成メモ (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 ディレクトリも作成されているはずである.
このディレクトリ, およびそれ以下の特定のファイルに関して グループの変更と書き込み権限変更をおこなう.
グループを gate とし, グループに書き込み権限を与える. (これは少しアンセキュアな方針かもしれない. よりセキュアな 方法として, 代表的な管理者 1 人にのみ書き込み権限を与える という方針もあり得るだろう).
$ cd cvsroot $ chgrp gate CVSROOT $ chmod g+s CVSROOT $ chmod g+w CVSROOT
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 のみに
なお, メール通知の際の宛先は EPA サーバの gate-toroku-system 開発グループ とし, ファイルの文字コードは EUC とする.
日常の開発とメンテナンス作業の覚書
CVS を利用して開発・メンテナンス
日常 gate-toroku-system を開発する際には, CVS を解して作業すること. 間違っても /home/gate/gate-toroku-system 以下のソースを直接編集しては いけない.
CVS に関しては CVS に関するメモ (地球流体電脳倶楽部) など, Web や書籍を参照のこと.
tar.gz ファイルの作成
CVS で一通りの作業を行った後は EPA サーバ上の /home/gate 以下に gate-toroku-system.tar.gz を設置すること. 設置のための作業は以下の通り
$ sudo -u gate -H $ 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 ^^^ ここは書き換えること
Keyword(s):
References:[[EPA2008]2008年度前期サーバ構築ログ] [[EPA2008]gate-toroku-systemのインストールと設定] [消えたページ一覧]