マウントしたDEXCS2008イメージに対すして、DEXCS2008-OpenFOAMとすべく変更作業の具体的な内容について記しておきます。
OpenFOAMのモジュールやDEXCSランチャーなどは、基本的に所定の収納場所にファイルコピーしておいて、ファイルの所有権やパーミッションで問題が起きないような設定をしておけばよいのですが、パッケージマネージャを使ってインストールするソフトについては特殊な方法を使います。
前者(ファイルコピー)の方法で、以下の作業を実施しました。
なお、OpenFOAMのモジュールが/usr/local/OpenFOAM以下に組み込んであり、それ以外で必要なファイル一式は、下の図のようなフォルダー構成に展開されているという前提での説明になります。~
-OpenFOAMのモジュール一式をコピー
sudo cp -r /usr/local/OpenFOAM /mnt/disk/usr/local/
(OpenFOAMのモジュール一式が別の場所にインストールしてある場合や、他のマシンから持ってくる場合は、注記を参照)
-ランチャースクリプト一式をコピー
sudo cp -r launcher /mnt/disk/usr/local/OpenFOAM/
-ランチャーから参照するヘルプファイルやチュートリアル一式をコピー
sudo cp -r doc /mnt/disk/usr/local/OpenFOAM/
-パーミッションの変更
sudo chmod 755 -R /mnt/disk/usr/local/OpenFOAM
-Blenderスクリプトの変更と追加
cd blender-scripts
–密度制御ファイル作成スクリプトは旧版を削除し、バグフィックス版を使います
sudo rm /mnt/disk/usr/lib/blender/scripts/NodeDensity_4_2.py
sudo cp NodeDensity_4_3.py /mnt/disk/usr/lib/blender/scripts/
–blenderから、アスキー形式のSTLファイルをエクスポートできるようにするスクリプトも組み込んでおきます
sudo cp NodeDensity_4_3.py /mnt/disk/usr/lib/blender/scripts/
-デスクトップまわりの変更
–Adventure起動用のランチャーを削除
sudo rm /mnt/disk/etc/skel/Desktop/simple-launcher.desktop
–OpenFOAM起動用のランチャーを追加
sudo cp -r DEXCS-Demo /mnt/disk/etc/skel/Desktop/
–デモ、チュートリアルファイル一式をコピー
sudo cp -r OpenFOAM-Tutorials /mnt/disk/etc/skel/Desktop/
後者のパッケージマネージャを使ってインストールするソフトについては、VM用イメージ修正スクリプト(edit.sh)を起動することにより、マウントしたVMイメージのrootになって、その上でパッケージマネーシャ(apt)を使うことで、VMイメージに対してパッケージのインストール作業が出来るようになります。
-まず、以下のスクリプト(edit.sh)を実行しておく
#!/bin/bash
if [[ `whoami` != "root" ]]; then
sudo $0
exit
fi
cp /etc/resolv.conf /mnt/disk/etc/
mount -t proc proc /mnt/disk/proc/
mount -t sysfs sys /mnt/disk/sys/
mount –bind /tmp /mnt/disk/tmp
mount –bind /dev /mnt/disk/dev
xhost +local:root
HOME=/root chroot /mnt/disk /bin/bash
xhost -local:root
umount /mnt/disk/proc
umount /mnt/disk/sys
umount /mnt/disk/tmp
umount /mnt/disk/dev
rm /mnt/disk/etc/resolv.conf
-マクロ処理言語(OpenFOAMのチュートリアル中のblockMeshDictで、この言語を使って解釈されるサンプルがあります)
apt-get install m4
-The GNU Emacs editor (Emacs 22)
apt-get install emacs22
-gnuplot
apt-get install gnuplot