4.1. インストール関連ファイル

ここでは、ソフトウェアのインストールに必要な各ファイルに関するフォーマットやルールなどを説明します。

4.1.1. version.sh

ソフトウェアのバージョンを指定するためのスクリプト。

アンダースコア2つずつに挟まれた変数は他のスクリプト中で用いるための変数。

  • <NAME>_VERSION

    • ソフトウェアのバージョン

  • <NAME>_MA_REVISION

    • 同一バージョンに対して MAInstaller のスクリプトが改訂された場合、それを区別するための識別子

  • __NAME__

    • ディレクトリ名などに用いられる、ソフトウェアの名前

    • MAInstaller では、スタイルとして小文字に統一している

  • __VERSION__

    • <NAME>_VERSION を指定する

  • __MA_REVISION__

    • <NAME>_MA_REVISION を指定する

TENES_VERSION="1.1.2"
TENES_MA_REVISION="0"

__NAME__=tenes
__VERSION__=${TENES_VERSION}
__MA_REVISION__=${TENES_MA_REVISION}

4.1.2. install.sh

ソフトウェアをインストールするスクリプト。

  • 引数として設定名(mode)をとる

    • 省略した場合は default

    • 存在しない設定名を与えた場合、利用可能な設定名の一覧を返す

  • setup.sh を自動で呼び出し、ソースコードをダウンロード・展開する

  • config/$mode 以下にある preprocess.sh, build.sh, install.sh, postprocess.sh を自動で呼び出す

    • preprocess.sh

      • configurecmake など、ビルドの前処理をする

    • build.sh

      • ソフトウェアをコンパイルする

    • install.sh

      • ソフトウェアをインストールする

    • postprocess.sh

      • ラッパーの作成やリネームなどの後処理

    • config/$mode 以下にスクリプトがない場合、 config/default 以下のものが実行される

      • config/default にもない場合はスキップ

4.1.3. download.sh

ソースコードをインターネットから入手するためのスクリプト。

  • $SOURCE_DIR にダウンロードする

    • 保存されたファイルはフォーマットに従ってリネームしておく

      • ソフトウェアごとの違いをできるだけ減らすため

    • 特に、バージョン番号は必ず付与し、区別可能にしておく

  • すでにダウンロード済みの場合はスキップする

    • 外部アクセスできない環境の場合は、手動でファイルを置けるようにしてある

SCRIPT_DIR=$(cd "$(dirname $0)"; pwd)
. $SCRIPT_DIR/../../scripts/util.sh
. $SCRIPT_DIR/version.sh
set_prefix

if [ -f $SOURCE_DIR/${__NAME__}-${__VERSION__}.tar.gz ]; then :; else
  check wget https://github.com/issp-center-dev/TeNeS/archive/v${__VERSION__}.tar.gz -O $SOURCE_DIR/${__NAME__}-${__VERSION__}.tar.gz
fi

4.1.4. setup.sh

アーカイブファイルを展開するためのスクリプト。

  • download.sh を実行してアーカイブファイルを取得する

    • すでにダウンロードされているかのチェックは download.sh が行う

  • $SOURCE_DIR 内にあるアーカイブファイルを $BUILD_DIR に展開する

    • 展開後のディレクトリは、フォーマットに従ってリネームしておく

  • patch ディレクトリ内にパッチファイルがある場合にはそれを適用する

SCRIPT_DIR=$(cd "$(dirname $0)"; pwd)
. $SCRIPT_DIR/../../scripts/util.sh
. $SCRIPT_DIR/version.sh
set_prefix

sh ${SCRIPT_DIR}/download.sh

cd $BUILD_DIR
if [ -d ${__NAME__}-${__VERSION__} ]; then :; else
  check mkdir -p ${__NAME__}-$__VERSION__
  tarfile=$SOURCE_DIR/${__NAME__}-${__VERSION__}.tar.gz
  sc=`calc_strip_components $tarfile README.md`
  check tar zxf $tarfile -C ${__NAME__}-${__VERSION__} --strip-components=$sc
  cd ${__NAME__}-$__VERSION__
  if [ -f $SCRIPT_DIR/patch/${__NAME__}-${__VERSION__}.patch ]; then
    patch -p1 < $SCRIPT_DIR/patch/${__NAME__}-${__VERSION__}.patch
  fi
fi

4.1.6. README.md

ソフトウェアの情報について記載してあります。具体的には、

  • アプリ名

  • SUMMARY

  • LICENSE

  • OFFICIAL PAGE

  • MateriApps URL

に関する情報が記載してあります。各情報については、 物質科学シミュレーションのポータルサイトMateriApps より引用されています。


==

SUMMARY
-------

並列計算機に対応した数値厳密対角化法による有効模型ソルバーパッケージ。
広汎な多体量子系の有効模型(多軌道ハバード模型、ハイゼンベルグ模型、近藤格子模型など)
の基底状態及び低励起状態の波動関数を並列計算によって求める。
ランチョス法による基底状態計算、熱的純粋量子状態を利用した
比熱・帯磁率の温度依存性計算が可能。さらに、シフト型クリロフ部分空間ライブラリKωを用いて
動的グリーン関数の計算が可能である。ver.3.0からは実時間発展の機能も追加された。

LICENSE
-------

GNU GPL version 3

OFFICIAL PAGE
-------------

http://www.pasums.issp.u-tokyo.ac.jp/hphi/

MateriApps URL
--------------

https://ma.issp.u-tokyo.ac.jp/app/339

4.2. 管理用ファイル (scripts/ )

4.2.1. util.sh

スクリプト内で使う関数を定義しているファイル

4.2.2. check_prefix.sh

インストール先 (MA_ROOT)、ソースコードダウンロード先 (SOURCE_DIR)、ビルド作業用ディレクトリ (BUILD_DIR) を表示するスクリプト

4.2.3. fix_dylib.sh

macOS で共有ライブラリの名前などを修正するスクリプト

4.2.4. list_maversion.sh

MateriApps Installer でサポートされている各種アプリのバージョンを列挙するスクリプト