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

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


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

概要

以下では, スペクトル計算のための Fortran90 ライブラリ SPMLThe 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 ディレクトリ以下には以下のファイルが置かれている.

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

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

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

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

依存関係

spml-lapack-g95 パッケージは netcdf-g95 パッケージ, gt4f90io-g95 パッケージ, lapack-g95 パッケージ, ispack-g95 パッケージ, に依存することから, 以下のファイル群に依存する.

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

spml-lapack-g95_debmake_main.sh の使い方

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

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

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

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

cron を利用した自動更新

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

$ crontab -e

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

MAILTO=morikawa@xxx.xxxx

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

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

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

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


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