[ 地球流体電脳倶楽部 / cc-env / G95 Debian パッケージトップページ ] [ 手引き目次 / SIGEN ]

gt4f90io-g95 Debian パッケージ作成の手引き


  1. 概要
  2. ディレクトリ構成
  3. ツール群の解説
  4. 依存関係
  5. gt4f90io-g95_debmake_main.sh の使い方
  6. cron を利用した自動更新
  7. g95 によるコンパイルがうまくいかない場合

概要

以下では, gtool4 プロジェクト で公開されているデータ I/O ライブラリ gt4f90io を The G95 project で公開されている G95 Fortran Compiler によってコンパイルし, その Debian パッケージを自動生成するための方法について記す.

ディレクトリ構成

etch
G95 version 0.9 (安定版) によって生成された Debian パッケージの置き場
sarge, stable
etch へのシンボリックリンク
sid
G95 最新版によって生成された Debian パッケージの置き場
unstable
sid へのシンボリックリンク
buildpackage-tools
Debian パッケージ生成ツール群

ツール群の解説

buildpackage-tools ディレクトリ以下には以下のファイルが置かれている.

gt4f90io-g95_debmake_main.sh
G95 最新版によって作成される Debian パッケージアップデートのためのメインプログラム.
gt4f90io-g95-v0.9_debmake_main.sh
G95 version 0.9 (安定版) によって作成される Debian パッケージアップデートのためのメインプログラム.
g95_version
現在 Debian パッケージ化に使用されている g95 の最新バージョンが 保持されている.
gt4f90io_version
G95 最新版によって作成される Debian パッケージの gt4f90io の最新バージョンが保持されている.
gt4f90io_version_v0.9
G95 version 0.9 (安定版) によって作成される Debian パッケージの gt4f90io の最新バージョンが保持されている.

プログラムが呼び出される際のプロセスの階層を以下に示す.

gt4f90io-g95_debmake_main.sh  ダウンロード - Debian パッケージ作成
|
|-- g95_version               バージョン比較
|
`-- gt4f90io_version          バージョン比較

gt4f90io-g95-v0.9_debmake_main.sh  Debian パッケージ作成
|
`-- gt4f90io_version_v0.9          バージョン比較

依存関係

gt4f90io-g95 パッケージは netcdf-g95 パッケージ に依存することから, <URL:../netcdf-g95/> 以下の ファイル群に依存する. 直接的に依存しているのは以下のファイルである.

これらのファイルが生成されていない場合, gt4f90io-g95 パッケージが 自動生成できないため注意すること.

gt4f90io-g95_debmake_main.sh の使い方

buildpackage-tools ディレクトリへ移動後, gt4f90io-g95_debmake_main.sh を実行する. その際, 環境変数 DEBEMAIL, DEBFULLNAME, MAILTO を設定して実行すること. gt4f90io-g95-v0.9_debmake_main.sh も同様である.

DEBFULLNAME, DEBEMAIL で設定された値は Debian パッケージ内の changelog に書き込まれる. MAILTO で設定されたメールアドレスへは, このプログラム によるアップデートの結果が送られる.

$ cd buildpackage-tools
$ DEBEMAIL=morikawa@xxx.xxxx.xx \
  MAILTO=morikawa@xxx.xxxx.xx \
  DEBFULLNAME="Yasuhiro MORIKAWA" \
  ./gt4f90io-g95_debmake_main.sh -v

オプション -v によって動作の詳細が標準エラー出力に 表示される. 不要な場合は -v をはずすこと.

cron を利用した自動更新

cron を利用することによって, 更新を自動化する.

$ crontab -e

以下に書き込む内容の例を示す. MAILTO, DEBEMAIL, DEBFULLNAME は 適宜変更せよ.

MAILTO=morikawa@xxx.xxxx.xx

# gt4f90io-g95 Debian パッケージのアップデート (毎週月曜深夜にアップデート)
#   ※ 実際には 1 行で記述すること
30 3 * * 1 umask 002;
   cd /GFD_Dennou_Club/ftp/arch/cc-env/g95/gt4f90io-g95/buildpackage-tools ;
   DEBEMAIL=morikawa@xxx.xxxx.xx DEBFULLNAME="Yasuhiro MORIKAWA" ./gt4f90io-g95_debmake_main.sh

g95 によるコンパイルがうまくいかない場合

g95 は頻繁に更新されるため, バージョンによっては gt4f90io の コンパイルがうまくいかない場合がある. その場合, もし cron を利用した自動更新 を行っていて毎回 cron からエラーメールが 来るのが鬱陶しい場合は, 一時的に g95_version のバージョンを手動で 最新版に更新しておくと良い. こうすると再度 g95 がバージョンアップされる までは gt4f90io-g95 パッケージの自動生成を行わないため, エラーが生じない.

ただし, g95 がバージョンアップした際には, 「一つ前の deb パッケージが 取得できない」というエラーを生じるため, g95_version を元の (過去, gt4f90io-g95 を正しく生成できた) バージョンに手動で戻す. もしも再度 バージョンアップされた g95 でも gt4f90io ライブラリが生成できない場合は 再び上記のように g95_version を g95 の最新バージョンに手動で 変更すること.


Yasuhiro MORIKAWA / GFD Dennou Staff dcstaff@gfd-dennou.org
Last Updated: 2007/12/02, Since: 2006/06/19