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

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


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

概要

以下では, 石岡謹製数値計算パッケージ ISPACKThe 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 ディレクトリ以下には以下のファイルが置かれている.

ispack-g95_debmake_main.sh
G95 最新版によって作成される Debian パッケージアップデートのためのメインプログラム. 以降のファイルはは全てこのプログラムから呼び出される.
g95_download.sh
The G95 project から Linux g95 のバイナリをダウンロードする.
g95_vercheck.sh
ダウンロードした g95 の tar.gz パッケージを展開し, その g95 バイナリのバージョンをチェックする.
g95_getversion.sh
g95 バイナリのバージョンを取得する. スクリプトである. 内部で g95_datetrans.pl を呼び出す.
g95_datetrans.pl
g95 バイナリから出力する日付を YYYYMMDD の形式に 変更するスクリプト.
g95_version
現在 Debian パッケージ化に使用されている g95 の最新バージョンが 保持されている.

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

ispack-g95_debmake_main.sh    ダウンロード - Debian パッケージ作成
|
|-- g95_download.sh           ダウンロード
|
|-- g95_vercheck.sh           バージョンチェック
|   |
|   `-- g95_getversion.sh     バージョン取得
|       |
|       `-- g95_datetrans.pl  バージョンの数値変換
|
`-- g95_version               バージョン比較

ispack-g95_debmake_main.sh の使い方

buildpackage-tools ディレクトリへ移動後, ispack-g95_debmake_main.sh を実行する. その際, 環境変数 DEBEMAIL, DEBFULLNAME, MAILTO を設定して実行すること.

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

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

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

cron を利用した自動更新

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

$ crontab -e

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

MAILTO=morikawa@xxxx.xxxx

# g95 Debian パッケージのアップデート (毎週月曜深夜にアップデート)
30 3 * * 1 umask 002; cd /GFD_Dennou_Club/ftp/arch/cc-env/g95/ispack-g95/buildpackage-tools ; DEBEMAIL=morikawa@xxxx.xxxx DEBFULLNAME="Yasuhiro MORIKAWA" ./ispack-g95_debmake_main.sh

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

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

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


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