DEXCS2012 for OpenFOAM(R) 製作メモ

DEXCS2010以来、isoイメージの基本的な製作方法は変わっていませんが、製作方法メモが散逸してしまっているので、ここにとりまとめておくことにしました。

DEXCS2012ではベースOSをこれまでのUbuntuからLinux Mintに変更した事で、一部の人からはUbuntuへの復帰を希望する声もあがっているようです。そういう人には独自にUbuntu版をリリースしてもらっていいんじゃないかと、その際の参考資料にしてもらえればと思います。Linux Mint といってもベースはUbuntuなので、アプリケーションのインストール方法などは全く同じです。違うのはデスクトップのGUI環境だけで、その設定箇所も明記しておきました。

但し、内容の説明に不十分な点が多々ある点は自覚しており、追って修正・追記していく予定ではありますが、ご指摘頂ければ、その作業も捗ることになりましょう。

また、こうしてまとめ直してみると、もうちょっとスマートにやる方法もあったんでないかと・・・何かと考えさせられます。

ベースOS(Linux Mint)の日本語化

参考サイト⇒http://linuxmint-jp.net/download.html

$ wget -q http://linuxmint-jp.net/linuxmint-ja-archive-keyring.gpg -O- | sudo apt-key add –
$ sudo wget http://linuxmint-jp.net/sources.list.d/linuxmint-ja.list -O /etc/apt/sources.list.d/linuxmint-ja.list
$ sudo apt-get update
$ sudo apt-get dist-upgrade

$ sudo apt-get install mint-gnome-ja

日本語フォルダ環境変更

  • せっかくOSを日本語化したのですが、CAEアプリの場合、フォルダー名に日本語を使うと、何かと不都合が生じる場合が多いので、フォルダ名だけは日本語表示させないようにしておきます。

$ export LANG=C
$ xdg-user-dirs-gtk-update
$ echo C > .config/user-dirs.locale

  • システム⇒コントロールセンター⇒自動起動するアプリ を起動し、「ユーザー・フォルダーの更新」のチェックマークを外しておく
  • ホームフォルダ中、Desktop以外のフォルダーを全て削除

 

remastersys

  • 再配布用isoイメージを作成するツールです。

参考サイト⇒http://www.geekconnection.org/remastersys/

  • http://www.remastersys.com/ubuntu/remastersys.gpg.key を入手し、適当な場所へ保存しておく。
  • Synapticパッケージマネージャの、「設定」⇒「リポジトリ」を選択すると新たにメニューが現れる。「認証」タブを選択し、「鍵ファイルのインポート」ボタンを押して、上記ダウンロードした鍵ファイルを読み込む。
  • 引き続き、「他のソフトウェア」タブを選択したメニューにて、「追加」ボタンを押すと、APTラインの入力を促されるので、以下入力。

deb http://www.remastersys.com/ubuntu precise main

  • 「ソースを追加」ボタンを押せばソフトウェアソースのリストに追加される。但しその際、上記ラインともう一つ、以下も追加されるが、こちらの方はチェックマークを外しておく。

deb http://www.remastersys.com/ubuntu precise main(ソースコード)

  • 設定画面を閉じて、パッケージマネージャの「再読込」ボタンを押す。
  • remastersysy, remastersys-gui がパッケージリストに出てくるようになるので、これをインストールする。

 

アプリケーションのインストール

再配布用のDEXCSイメージを作成する際に、上記導入したremastersysを使いますが、remastersysを含めてパッケージマネージャを使ってインストールしたアプリケーションはそのまま使えるようになります。しかしそうでないものを再配布用のDEXCSイメージでも使えるようにするには、それなりの手当が必要です。

パッケージマネージャにて新たにインストールするアプリケーション

emacs

    • 一口にemacsと言って、色々なGUIインタフェースがあるのですが、DEXCS for OpenFOAMでは、Synapticパッケージマネージャで、emacs23-lucidをインストール指定している。理由は全くの個人的な好みによるもの。

FreeCAD

    • Extensible Open Source CAx program (alpha)
    • 普通にインストールしただけでは、初期画面がまっさらで、ツールメニューなど何もないので、これをカスタマイズして、ホームディレクトリ下にできた.FreeCADを、/etc/skelの下へコピーしておきます。

python-wxGlade

    • wxPython を使って Python により書かれた GUI デザイナ
    • wxGlade は有名な GUI ツールキットである wxPython を使って Python により 書かれた GUIデザイナであり、wxWidgets/wxPython ユーザインターフェイスの作成 を補助します。現時点では、Python、C++ および XRC
      (wxWidgets の XML リソース) コードを生成できます。

SPE

    • Stani の Python エディタ
    • Spe は Python 用 IDE であり、自動インデント、自動補完、関数 tips、 構文配色、構文強調、UMLビューア、クラスエクスプローラ、ソースインデックス、 自動 todo リスト、メモ帳、pycrust シェルの統合、Python ファイルブラウザ、最近編集したファイルのブラウザ、ドラッグアンドドロップ、 コンテキストヘルプなどの機能があります。Special は Blender 三次元
      オブジェクトブラウザと Blender 内で対話的に起動する機能により Blender をサポートします。Spe は wxGlade と XRCed(gui デザイナ)、 PyChecker (ソースコード診断ツール)、そして Kiki (正規表現端末) が同梱されます。 Spe は
      wxGlade により拡張可能です。

kdiff3

    • KDiff3 は 2 個または 3 個の入力ファイルを比較して、一行単位、一文字単位で差分を表示します。自動マージ機能や、マージ時の衝突を解消するための利用しやす い統合されたエディタを提供します。
    • KDiff3は再帰的なディレクトリ比較やマージ も可能です。
    • なので、ケースファイルを比較して、相違点を見つけるといった用途に使えます。

browser-plugin-gnash

    • GNU Shockwave Flash (SWF) player – Plugin for Mozilla and derivatives

gnome-terminal

    • Ubuntuで標準のコマンド・ライン端末です。
    • Linux Mint Mate版ではmate-terminalが標準ですが、DEXCSやTreeFoamはこれまでUbuntu上で開発してきた経緯があり、この端末を使用しているのでこれも追加インストールしてあります。

nautilus

    • Ubuntuで標準のファイル・マネージャです。
    • Linux Mint Mate版の標準は、Cajaですが上に述べたのと同じ理由で追加インストールしてあります。

gedit

    • Ubuntuで標準のテキスト・エディタです。
    • Linux Mint Mate版の標準は、plumaですが上に述べたのと同じ理由で追加インストールしてあります。

xterm

    • 昔ながら(?)の端末です。
    • helyxOSで必要になります。

eog

    •  画像ビューアプログラム Eye of GNOME
    • DEXCSランチャーのポスト処理で、gnuplotで作成したグラフ表示に使用します。

手動でインストールするアプリケーション

  • 入手に必要なヴァージョン管理システムやら、コンパイルに必要なライブラリは以下の通り。

$ sudo apt-get install git-core

$ sudo apt-get install subversion

$ sudo apt-get install python-numpy

$ sudo apt-get install python-dev

  • 以下、OpenFOAM〜helyxOSのインストールまでは、一旦ホームディレクトリ直下にOpenFOAMというフォルダを作成し、その中でインストールしますが、再配布用には、OpenFOAMのフォルダ以下、/opt/の下に移動し、ホームディレクトリ下にシンボリックリンクをはっておきます。

$ cd
$ ln -s /opt/OpenFOAM OpenFOAM

OpenFOAM

参考サイト⇒http://www.openfoam.org/download/git.php

$ cd

$ mkdir OpenFOAM

$ cd OpenFOAM

$ git clone git://github.com/OpenFOAM/OpenFOAM-2.1.x.git

$ sudo apt-get install build-essential flex bison cmake zlib1g-dev qt4-dev-tools libqt4-dev gnuplot libreadline-dev libncurses-dev libxt-dev

$ sudo apt-get install libscotch-dev libopenmpi-dev

$ cd OpenFOAM-2.1.x

$ . etc/bashrc

$ ./Allwmake

ParaView

    • 基本的に、OpenFOAMの参考サイトに記してある通り、OpenFOAMのコンパイルに引き続いて、

$ cd $WM_THIRD_PARTY_DIR
$ ./makeParaView

    • で良いのですが、このままだとpythonスクリプトが使えないので、makeParaViewスクリプトを一部変更する。

# MPI support:

withMPI=true
MPI_MAX_PROCS=32

# Python support:
# note: script will try to determine the appropriate python library.
# If it fails, specify the path using the PYTHON_LIBRARY variable
withPYTHON=true
# PYTHON_LIBRARY=””
PYTHON_LIBRARY=”/usr/lib/libpython2.7.so.1.0″

    • ParaViewのコンパイルが終わったら、

$ cd $FOAM_UTILITIES/postProcessing/graphics/PV3Readers
$ wmSET
$ ./Allwclean
$ ./Allwmake

pyFOAM

 

参考サイト⇒http://openfoamwiki.net/index.php/Contrib_PyFoam

cd $HOME/OpenFOAM

$ svn co https://openfoam-extend.svn.sourceforge.net/svnroot/openfoam-extend/trunk/Breeder/other/scripting/PyFoam/

$ cd PyFoam

$sudo python setup.py install

    • 再配布用イメージでの動作に不具合を生じないように、一部chownすべきファイルがありましたが、その名前は失念しました。

swak4Foam

参考サイト⇒http://openfoamwiki.net/index.php/Contrib/swak4Foam

 

$ cd $HOME/OpenFOAM

$ svn checkout https://openfoam-extend.svn.sourceforge.net/svnroot/openfoam-extend/trunk/Breeder_2.0/libraries/swak4Foam/

$ cd swak4Foam

$ ./Alwmake

$ cd $FOAM_USER_LIBBIN

$ mv * ../../../../OpenFOAM-2.1.x/platforms/linuxGccDPOpt/lib/

$ cd ../bin

$ mv * ../../../../OpenFOAM-2.1.x/platforms/linuxGccDPOpt/bin/

  • コンパイルしたライブラリなど通常、$FOAM_USER_LIBBINに生成されますが、この場所は再配布用イメージに引き継ぐことが出来ないので、共通場所である$FOAM_LIBBINに移動しています。

helyxOS

    • 64bit版のみ

入手先⇒http://sourceforge.net/projects/helyx-os/

    • $HOME/OpenFOAM にて解凍
    • chmod 755 helyxOS.sh
    • 起動用スクリプト(helixOS)を以下作成し、/usr/binへ収納

#!/bin/bash
. $HOME/OpenFOAM/OpenFOAM-2.1.x/etc/bashrc
export PATH=$HOME/OpenFOAM/Engys/HelyxOS/v100/:$PATH
export LANG=en
helyxOS.sh

  • ランチャーコマンドは、以下設定

/usr/bin/helixOS

Blender

入手先⇒http://www.blender.org/download/get-blender/

    • /opt/にて展開

$ sudo ln -s /opt/blender-2.64a-linux-glibc27-i686/blender /usr/bin/blender

SwiftBlock

入手先⇒https://github.com/nogenmyr/swiftBlock

    • /opt/blender-2.64a-linux-glibc27-i686/2.64/scripts/addons/ に展開し、chmod 755
    • 但し、現時点における最新版(2012/10/21のタイムスタンプ)はバグがあるようなので、その前のヴァージョンを利用している。

 

SwiftSnap

入手先⇒https://github.com/nogenmyr/swiftSnap

    • /opt/blender-2.64a-linux-glibc27-i686/2.64/scripts/addons/ に展開し、chmod 755

JAVA gnuplot GUI

入手先⇒http://sourceforge.net/projects/jgp/

    • /opt/にて展開
    • ランチャーコマンドは、以下設定

java -cp /opt/jgp/classes jgp.gui.JGP

TreeFoam

    • /opt/にて展開
    • ホームディレクトリ下にシンボリックリンクをはっておきます。

$ cd
$ ln -s /opt/OpenFOAM OpenFOAM

    • ランチャーコマンドは、以下設定

/opt/TreeFoam/treefoam

デスクトップ周り

壁紙とアイコン

入手先⇒http://dexcs.gifu-nct.ac.jp/pukiwiki/index.php?DEXCS%A4%CE%A5%ED%A5%B4

  • 壁紙は、/usr/share/backgrounds/ に収納

$ cd /usr/share/backgrounds/linuxmint

$ sudo rm default_background.jpg

$ sudo ln -s ../DEXCS2012-desktop\ .png default_background.jpg

  • アイコンは、/usr/share/icons に収納

再配布用の仕組み

remastersys で再配布イメージを作成する際に、/home ディレクトリ下にあって再配布イメージに継承したいものは、/etc/skel下に収納しておけば、継承してくれるのですが、ユーザーの名前までは継承してくれません。そこでDEXCSでは、ユーザー名を継承できるように、セットアップスクリプトを同梱して配布するようにしています。

一方、/home ディレクトリ下でない箇所(/optや/usr/binなど)に追加したファイルは自動的に再配布用イメージに継承されますが、ただ問題は全てファイルのオーナーがrootになってしまう点です。単にアプリケーションを実行するだけで済ませられるようなアプリはそれで構いませんが、そうでない(OpenFOAMなどOpenFOAMの下に各ユーザー固有のワークディレクトリを作成するなどの)アプリの場合は、前もって書き込み権限を付与していくことで対処しています。

再配布用/etc/skelのセッティング

    • /etc/skel下に収納するファイルの管理が煩雑になってきたので、DEXCS2012からは、これらをスクリプトで管理するようにしました。

#!/bin/sh

rm -rf /etc/skel/.FreeCAD/
cp -r .FreeCAD/ /etc/skel/

#rm -rf /etc/skel/.blender/
#cp -r .blender/ /etc/skel/

rm -rf /etc/skel/.gconf/
cp -r .gconf/ /etc/skel/

rm -rf /etc/skel/.config/
cp -r .config/ /etc/skel/

rm -rf /etc/skel/.mateconf/
cp -r .mateconf /etc/skel/

rm -rf /etc/skel/.local/
cp -r .local /etc/skel/

rm -rf /etc/skel/Desktop/DEXCS
cp -r Desktop/DEXCS /etc/skel/Desktop/

rm -f /opt/TreeFoam/Ver*
rm -rf /opt/OpenFOAM/dexcs*

  • remastersysを実行する前に、ホームディレクトリ下で上記スクリプトをスーパーユーザ権限で実行しておきます。
  • 赤字部分が、Linux Mint 版での固有セッティングです。この中に追加したランチャーの設定ファイルなどが収納されています(ここだけではありませんが)。Ubuntu版ではここを相応なもので置き換えてやることになると思いますが、特に12.04以降は、あまり触っていないので定かではありません。

再配布イメージに同梱するセットアップスクリプト(setupDEXCS.sh)

    • DEXCSをインストールする際、最初に実行するセットアップスクリプトです。

#!/bin/sh
WHO=`whoami`
echo “#!/bin/sh” > ~/Desktop/DEXCS/startup1.sh
LIST=~/Desktop/DEXCS/setup.list
while read i
do
echo “sed ‘s/dexcs\/Desktop/$WHO\/Desktop/g’ $i > ~/Desktop/DEXCS/temp” >> ~/Desktop/DEXCS/startup1.sh
echo “sed ‘s/dexcs\/デスクトップ/$WHO\/Desktop/g’ ~/Desktop/DEXCS/temp > $i” >> ~/Desktop/DEXCS/startup1.sh
echo “sed ‘s/home\/dexcs/home\/$WHO/g’ $i > ~/Desktop/DEXCS/temp” >> ~/Desktop/DEXCS/startup1.sh
echo “cp ./DEXCS/temp $i” >> ~/Desktop/DEXCS/startup1.sh
done < ${LIST}

chmod +x ~/Desktop/DEXCS/startup1.sh
~/Desktop/DEXCS/startup1.sh
mv ~/Desktop/DEXCS/DEXCS2012.desktop ~/Desktop/
. /opt/OpenFOAM/OpenFOAM-2.1.x/etc/bashrc
mkdir -p $FOAM_RUN
mkdir -p $FOAM_USER_APPBIN
cp ~/Desktop/DEXCS/launcherOpen/snappyDictExporter.py $FOAM_USER_APPBIN
cp ~/Desktop/DEXCS/launcherOpen/bcFilesConverter.py $FOAM_USER_APPBIN
rm ~/Desktop/ubiquity-gtkui.desktop -f
rm ~/Desktop/setupDEXCS.sh
killall -u $WHO

    •  再配布イメージにて、新たにユーザー名を変更する場合に、ユーザー名に応じてパスが直打ちになっている部分を書き直しています。マスターディスクでは、ユーザー名をdexcsとしているので、/home/dexcs の部分を、/home/($WHO)に変更
    • 変更が必要なファイルの名前リストは、~/Desktop/DEXCS/setup.listに記してあります。

~/Desktop/DEXCS/DEXCS2012.desktop
~/Desktop/DEXCS/dexcs.wxg
~/Desktop/DEXCS/launcherOpen/dexcs.py
~/Desktop/DEXCS/SWAK/dexcsSWAK.wxg
~/Desktop/DEXCS/SWAK/myDialog1.wxg
~/Desktop/DEXCS/SWAK/myDialog2.wxg
~/Desktop/DEXCS/SWAK/testFrameListBox.wxg
~/Desktop/DEXCS/SWAK/dexcsTextSsercher.wxg
~/Desktop/DEXCS/SWAK/timeLinePlotter.wxg
~/.config/mate/panel2.d/default/launchers/gnome-terminal.desktop
/opt/TreeFoam/treefoam.py
/opt/TreeFoam/treefoam.1.25
/opt/TreeFoam/configTreeFoam
/opt/TreeFoam/wxg/runParallelDialog.wxg
/opt/TreeFoam/wxg/separateCellZoneGroupDialog.wxg
/opt/TreeFoam/wxg/changeZoneNameDialog.wxg
/opt/TreeFoam/wxg/changeConfigTreeFoamDDialog.wxg
/opt/TreeFoam/wxg/changeConfigTreeFoamDialog.wxg
/opt/TreeFoam/wxg/selectConjugateCouplingFieldsDialog.wxg
/opt/TreeFoam/wxg/meshOperationDialog.wxg
/opt/TreeFoam/wxg/mergeZonesDialog.wxg
/opt/TreeFoam/wxg/selectFieldsForEditDialog.wxg
/opt/TreeFoam/wxg/selectFluidRegionDialog.wxg
/opt/TreeFoam/wxg/inputTextDDialog.wxg
/opt/TreeFoam/wxg/setCouplingConjugateDialog.wxg
/opt/TreeFoam/wxg/plotWatcherDialog.wxg
/opt/TreeFoam/wxg/openGridEditorDialog.wxg
/opt/TreeFoam/wxg/setDataInFieldsDialog-bak.wxg
/opt/TreeFoam/wxg/setDataInFieldsDialog.wxg
/opt/TreeFoam/wxg/saveCSV_Dialog.wxg
/opt/TreeFoam/wxg/gaugeDDialog.wxg
/opt/TreeFoam/wxg/editBoundaryConditionsDialog.wxg
/opt/TreeFoam/wxg/openFieldForGridEditorDDialog.wxg

 

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください