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>))へ戻る
((<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>))へ戻る