OpenFOAM 1.7.1 を RedHat Enterprise Linux 4 にインストールメモ

2011年2月4日

インストール対象マシン

Red Hat Enterprise Linux WS release 4 (Nahant Update 4), x86_64

作業方針

  • GCC のバージョンが 3 なので、OpenFOAM 1.6 から GCC 4.3.3 を持ってくる。
  • Qt 4.5 が準備できそうにないので、ParaView も OpenFOAM 1.6 のものを使いたい。

コンパイル

OpenFOAM 1.7.1 のインストール

OpenFOAM 1.7.1 のパッケージを展開。

$ mkdir ~/OpenFOAM-1.7.1
$ tar xvzf OpenFOAM-1.7.1.gtgz -C ~/OpenFOAM-1.7.1
$ tar xvzf ThirdParty-1.7.1.gtgz -C ~/OpenFOAM-1.7.1
$ ln -s ~/OpenFOAM-1.7.1 ~/OpenFOAM

GCC のインストール

GCC には OpenFOAM 1.6 のバイナリを使う。

$ tar xvzf ThirdParty-1.6.linux64Gcc.gtgz
$ cd ThirdParty-1.6
$ mkdir -p ~/OpenFOAM/ThirdParty-1.7.1/platforms/linux64
$ cp -r gcc-4.3.3/platforms/linux64/ ~/OpenFOAM/ThirdParty-1.7.1/platforms/linux64/gcc-4.3.3
$ cp -r gmp-4.2.4/platforms/linux64/ ~/OpenFOAM/ThirdParty-1.7.1/platforms/linux64/gmp-4.2.4
$ cp -r mpfr-2.4.1/platforms/linux64/ ~/OpenFOAM/ThirdParty-1.7.1/platforms/linux64/mpfr-2.4.1

~/.bashrc に以下を追加。

export WM_COMPILER=Gcc43
. ~/OpenFOAM/OpenFOAM-1.7.1/etc/bashrc

~/OpenFOAM/OpenFOAM-1.7.1/etc/settings.sh を以下のように編集。

# compilerInstall = OpenFOAM | system
compilerInstall=OpenFOAM
: ${compilerInstall:=system}

~/.bashrc を読み込む。

$ . ~/.bashrc

何もメッセージが出なければ OK。

OpenFOAM のコンパイル

OpenFOAM のコンパイルの実行。

$ cd ~/OpenFOAM/OpenFOAM-1.7.1
$ ./Allwmake

ParaView のインストール

CMake をインストールしておく。

Web から qt-4.4.3-1.fc8.sr.rpm を入手し、RPM パッケージを作成。その前に依存パッケージ sqlite (これも Web から入手) を入れておく。

# rpm -ivh sqlite-3.3.6-0.3.el4.x86_64.rpm sqlite-devel-3.3.6-0.3.el4.x86_64.rpm

RPM パッケージ作成環境が整っているものとして、以下を実行。

$ rpmbuild --rebuild qt-4.4.3-1.fc8.src.rpm

RPM が出来たらインストール。

$ cd ~/redhat/RPMS/x86_64
$ su
...
# rpm -ivh qt-4.4.3-1.x86_64.rpm
# rpm -ivh qt4-x11-4.4.3-1.x86_64.rpm
# rpm -ivh qt4-devel-4.4.3-1.x86_64.rpm

OpenFOAM 1.6 のバイナリの ParaView をインストール。

$ cd ThirdParty-1.6
$ cp -r paraview-3.6.1/platforms/linux64Gcc ~/OpenFOAM/ThirdParty-1.7.1/platforms/linux64Gcc43/parav
iew-3.6.1

OpenFOAM が使う ParaView のバージョンの設定を変更。

~/OpenFOAM/OpenFOAM-1.7.1/etc/apps/paraview3/bashrc

# set VERSION and MAJOR (version) variables
#ParaView_VERSION=3.8.0
ParaView_VERSION=3.6.1

~/.bashrc を読み込む。

$ . ~/.bashrc

ParaView が "libssl.so.0.9.8" 要求したので、リンクを作る。

# ln -s /lib64/libssl.so.0.9.7a /lib64/libssl.so.0.9.8

起動。

$ paraview

ParaView プラグインのコンパイル

ParaView プラグインも OpenFOAM 1.6 のものを使う。

オリジナルをどかす。

$ cd ~/OpenFOAM/OpenFOAM-1.7.1/applications/utilities/postProcessing/graphics
$ mv PV3FoamReader PV3FoamReader-1.7.1

OpenFOAM 1.6 のソースから PV3FoamReader を取り出す。

$ tar xvzf OpenFOAM-1.6.General.gtgz
$ cd OpenFOAM-1.6/applications/utilities/postProcessing/graphics
$ cp -r PV3FoamReader ~/OpenFOAM/OpenFOAM-1.7.1/applications/utilities/postProcessing/graphics

コンパイル。

$ cd ~/OpenFOAM/OpenFOAM-1.7.1/applications/utilities/postProcessing/graphics/PV3FoamReader
$ ParaView_INST_DIR=~/OpenFOAM/ThirdParty-1.7.1/paraview-3.6.1 ./Allwmake

エラー。

make[2]: /bin/c++: コマンドが見つかりませんでした

"/bin/c++" を作る。

# ln -s /home/(ユーザー名)/OpenFOAM/ThirdParty-1.7.1/platforms/linux64/gcc-4.3.3/bin/g++ /bin/c++

再度コンパイルを実行、またエラー。

make[2]: *** `/home/cfd/OpenFOAM/OpenFOAM-1.7.1/lib/linux64Gcc43DPOpt/paraview-3.6/libPV3FoamReader.
so' に必要なターゲット `/usr/lib64/libXt.so' を make するルールがありません。中止。

似たようなエラーが続々出るので、リンクを作っていく。

# ln -s /usr/X11R6/lib64/libXt.so /usr/lib64
# ln -s /usr/X11R6/lib64/libSM.so /usr/lib64
# ln -s /usr/X11R6/lib64/libICE.so /usr/lib64
# ln -s /usr/X11R6/lib64/libXi.so /usr/lib64
# ln -s /usr/X11R6/lib64/libXrender.so /usr/lib64
# ln -s /usr/X11R6/lib64/libXrandr.so /usr/lib64
# ln -s /usr/X11R6/lib64/libXcursor.so /usr/lib64
# ln -s /usr/X11R6/lib64/libXinerama.so /usr/lib64
# ln -s /usr/X11R6/lib64/libXfixes.so /usr/lib64
# ln -s /usr/X11R6/lib64/libXext.so /usr/lib64
# ln -s /usr/X11R6/lib64/libX11.so /usr/lib64

ひょっとしたらプラグインもバイナリを持ってくるだけでよかった? 実はどれがプラグインのバイナリなのかわからなかった。