IT pass HikiWiki - [ITPASS2014] gate-toroku-system の開発・メンテナンスのための準備 Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
{{toc}}
[((<ITPASSサーバ構築・運用ドキュメント>)) へ戻る]
= 日々の開発・メンテナンスのための準備
== 必要なパッケージのインストール
以下のコマンドで, 開発やメンテナンスに必要なパッケージをインストールする.
# apt-get install cvs
# apt-get install kcc
# apt-get install nkf
# 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 でディレクトリ内の不要なドットファイルなども削除しておく.
# su gate
$ cd gate-toroku-system
$ rm -frv `find -name CVS`
* 文字コードを 1 種類に統一したいため, kcc で文字コードのチェックを行う.
* ここでは EUC に統一することを考えているので, 異なるものがある場合には nkf で変更すること.
$ 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
$ nkf -e -Lu -d ./make-smtppasswd/gate-make-smtppasswd.PL
== 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, およびそれ以下の特定のファイルに関してグループの変更と書き込み権限変更をおこなう.
* 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 とする.
* CVSROOT のチェックアウト
chikuwa4 に適当なディレクトリを作成し CVSROOT のチェックアウトを行う
# mkdir ~chikuwa4/cvs
# cd ~chikuwa4/cvs
# export CVSROOT=/home/gate/cvsroot
# cvs checkout CVSROOT
# cd CVSROOT
* cvs リポジトリのカスタマイズ
* commit をメール通知する設定
/CVSROOT/loginfo に以下の一行を追加する
DEFAULT (echo ""; id; echo %{sVv}; date; cat) | mail -s gate-toroku-system-commit gate@itpass.scitec.kobe-u.ac.jp
* バイナリファイルを安全に登録するために
/CVSROOT/cvswrappers に以下の記述を加える
# Treat Image and Archive and Data file as Binary Data
*.gif -k 'b'
*.GIF -k 'b'
*.jpg -k 'b'
*.JPG -k 'b'
*.jpeg -k 'b'
*.JPEG -k 'b'
*.png -k 'b'
*.PNG -k 'b'
*.tif -k 'b'
*.TIF -k 'b'
*.tiff -k 'b'
*.TIFF -k 'b'
*.xpm -k 'b'
*.XPM -k 'b'
*.pbm -k 'b'
*.PBM -k 'b'
*.ico -k 'b'
*.ICO -k 'b'
*.eps -k 'b'
*.EPS -k 'b'
*.o -k 'b'
*.O -k 'b'
*.a -k 'b'
*.A -k 'b'
*.mod -k 'b'
*.MOD -k 'b'
*.nc -k 'b'
*.NC -k 'b'
*.obj -k 'b'
*.OBJ -k 'b'
*.ai -k 'b'
*.AI -k 'b'
*.psd -k 'b'
*.PSD -k 'b'
*.fla -k 'b'
*.FLA -k 'b'
*.swf -k 'b'
*.SWF -k 'b'
*.dvi -k 'b'
*.DVI -k 'b'
*.pdf -k 'b'
*.PDF -k 'b'
*.bz2 -k 'b'
*.BZ2 -k 'b'
*.gz -k 'b'
*.GZ -k 'b'
*.tar -k 'b'
*.TAR -k 'b'
*.tgz -k 'b'
*.TGZ -k 'b'
*.tar.gz -k 'b'
*.TAR.GZ -k 'b'
*.cab -k 'b'
*.CAB -k 'b'
*.lzh -k 'b'
*.LZH -k 'b'
*.zip -k 'b'
*.ZIP -k 'b'
*.sea -k 'b'
*.SEA -k 'b'
*.dat -k 'b'
*.DAT -k 'b'
*.ppt -k 'b'
*.PPT -k 'b'
*.doc -k 'b'
*.DOC -k 'b'
*.xls -k 'b'
*.XLS -k 'b'
* euc のファイルのみ登録するには
dennou サーバから kanjichecker.pl を入手し, 特定の文字コードのファイルのみをコミット可能にする
# wget http://www.gfd-dennou.org/library/cc-env/cvs/customize/euc-tools/kanjichecker.pl
# cvs add kanjichecker.pl
# cvs commit -m "Kanji code checker." kanjichecker.pl
CVSROOT/checkoutlist に以下の一行を追加する
kanjichecker.pl unable to check out / update kanjichecker.pl in CVSROOT
commit する
# cvs commit -m "Add kanjichecker.pl" checkoutlist
CVSROOT/commitinfo に以下のように追記する
DEFAULT perl $CVSROOT/CVSROOT/kanjichecker.pl euc %r/%p %s
* commit メッセージを euc のみに
dennou サーバからmsgchecker.pl を入手する
# wget http://www.gfd-dennou.org/library/cc-env/cvs/customize/euc-tools/msgchecker.pl
# cvs add msgchecker.pl
# cvs commit -m "log message code checker." msgchecker.pl
CVSROOT/checkoutlist に以下の一行を追加する
msgchecker.pl unable to check out / update msgchecker.pl in CVSROOT
commit する
# cvs commit -m "Add msgchecker.pl" checkoutlist
verifymsg に以下のように追記する
gate-toroku-system perl $CVSROOT/CVSROOT/msgchecker.pl euc %l
DEFAULT perl $CVSROOT/CVSROOT/msgchecker.pl ASCII %l
なお, メール通知の際の宛先は ITPASS サーバの gate-toroku-system 開発グループ とし, ファイルの文字コードは EUC とする.
== 参考文献
* ((<[ITPASS2012]gate-toroku-systemのインストールと設定>))
* ((<CVS に関するメモ|URL:http://www.gfd-dennou.org/library/cc-env/cvs/>))
[((<ITPASSサーバ構築・運用ドキュメント>)) へ戻る]
[((<ITPASSサーバ構築・運用ドキュメント>)) へ戻る]
= 日々の開発・メンテナンスのための準備
== 必要なパッケージのインストール
以下のコマンドで, 開発やメンテナンスに必要なパッケージをインストールする.
# apt-get install cvs
# apt-get install kcc
# apt-get install nkf
# 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 でディレクトリ内の不要なドットファイルなども削除しておく.
# su gate
$ cd gate-toroku-system
$ rm -frv `find -name CVS`
* 文字コードを 1 種類に統一したいため, kcc で文字コードのチェックを行う.
* ここでは EUC に統一することを考えているので, 異なるものがある場合には nkf で変更すること.
$ 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
$ nkf -e -Lu -d ./make-smtppasswd/gate-make-smtppasswd.PL
== 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, およびそれ以下の特定のファイルに関してグループの変更と書き込み権限変更をおこなう.
* 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 とする.
* CVSROOT のチェックアウト
chikuwa4 に適当なディレクトリを作成し CVSROOT のチェックアウトを行う
# mkdir ~chikuwa4/cvs
# cd ~chikuwa4/cvs
# export CVSROOT=/home/gate/cvsroot
# cvs checkout CVSROOT
# cd CVSROOT
* cvs リポジトリのカスタマイズ
* commit をメール通知する設定
/CVSROOT/loginfo に以下の一行を追加する
DEFAULT (echo ""; id; echo %{sVv}; date; cat) | mail -s gate-toroku-system-commit gate@itpass.scitec.kobe-u.ac.jp
* バイナリファイルを安全に登録するために
/CVSROOT/cvswrappers に以下の記述を加える
# Treat Image and Archive and Data file as Binary Data
*.gif -k 'b'
*.GIF -k 'b'
*.jpg -k 'b'
*.JPG -k 'b'
*.jpeg -k 'b'
*.JPEG -k 'b'
*.png -k 'b'
*.PNG -k 'b'
*.tif -k 'b'
*.TIF -k 'b'
*.tiff -k 'b'
*.TIFF -k 'b'
*.xpm -k 'b'
*.XPM -k 'b'
*.pbm -k 'b'
*.PBM -k 'b'
*.ico -k 'b'
*.ICO -k 'b'
*.eps -k 'b'
*.EPS -k 'b'
*.o -k 'b'
*.O -k 'b'
*.a -k 'b'
*.A -k 'b'
*.mod -k 'b'
*.MOD -k 'b'
*.nc -k 'b'
*.NC -k 'b'
*.obj -k 'b'
*.OBJ -k 'b'
*.ai -k 'b'
*.AI -k 'b'
*.psd -k 'b'
*.PSD -k 'b'
*.fla -k 'b'
*.FLA -k 'b'
*.swf -k 'b'
*.SWF -k 'b'
*.dvi -k 'b'
*.DVI -k 'b'
*.pdf -k 'b'
*.PDF -k 'b'
*.bz2 -k 'b'
*.BZ2 -k 'b'
*.gz -k 'b'
*.GZ -k 'b'
*.tar -k 'b'
*.TAR -k 'b'
*.tgz -k 'b'
*.TGZ -k 'b'
*.tar.gz -k 'b'
*.TAR.GZ -k 'b'
*.cab -k 'b'
*.CAB -k 'b'
*.lzh -k 'b'
*.LZH -k 'b'
*.zip -k 'b'
*.ZIP -k 'b'
*.sea -k 'b'
*.SEA -k 'b'
*.dat -k 'b'
*.DAT -k 'b'
*.ppt -k 'b'
*.PPT -k 'b'
*.doc -k 'b'
*.DOC -k 'b'
*.xls -k 'b'
*.XLS -k 'b'
* euc のファイルのみ登録するには
dennou サーバから kanjichecker.pl を入手し, 特定の文字コードのファイルのみをコミット可能にする
# wget http://www.gfd-dennou.org/library/cc-env/cvs/customize/euc-tools/kanjichecker.pl
# cvs add kanjichecker.pl
# cvs commit -m "Kanji code checker." kanjichecker.pl
CVSROOT/checkoutlist に以下の一行を追加する
kanjichecker.pl unable to check out / update kanjichecker.pl in CVSROOT
commit する
# cvs commit -m "Add kanjichecker.pl" checkoutlist
CVSROOT/commitinfo に以下のように追記する
DEFAULT perl $CVSROOT/CVSROOT/kanjichecker.pl euc %r/%p %s
* commit メッセージを euc のみに
dennou サーバからmsgchecker.pl を入手する
# wget http://www.gfd-dennou.org/library/cc-env/cvs/customize/euc-tools/msgchecker.pl
# cvs add msgchecker.pl
# cvs commit -m "log message code checker." msgchecker.pl
CVSROOT/checkoutlist に以下の一行を追加する
msgchecker.pl unable to check out / update msgchecker.pl in CVSROOT
commit する
# cvs commit -m "Add msgchecker.pl" checkoutlist
verifymsg に以下のように追記する
gate-toroku-system perl $CVSROOT/CVSROOT/msgchecker.pl euc %l
DEFAULT perl $CVSROOT/CVSROOT/msgchecker.pl ASCII %l
なお, メール通知の際の宛先は ITPASS サーバの gate-toroku-system 開発グループ とし, ファイルの文字コードは EUC とする.
== 参考文献
* ((<[ITPASS2012]gate-toroku-systemのインストールと設定>))
* ((<CVS に関するメモ|URL:http://www.gfd-dennou.org/library/cc-env/cvs/>))
[((<ITPASSサーバ構築・運用ドキュメント>)) へ戻る]