はじめに
DEXCS2024については、先の記事で作成段階から作業履歴を都度公開してきたが、DEXCS2024を正式リリースして半月も経たないうちに、Kernelがアップデートされると起動できなくなってしまうという、過去に例を見ない(想定外の)重大な欠陥が見つかった。
当初はCubicで、ubuntu24.04のsnapパッケージを削除できない、という事を知らないままFirefoxをdeb版に変更したのが原因ではないかと疑った。そこで改めて調べ直したら、そもそもFirefoxをsnap版のままでも使えるようにする方法がわかったので、snap/Firefoxには何ら手を加えないDEXCS-OFの作り方もできるようになった。
残念ながら、この方法で作成したとしてKernelアップデートの問題は解決できなかったが、作り方としてはこちらの方が、はるかに簡単でもあった。そこで今後(DEXCS2025〜)の為に、作成法として取りまとめることとした。
なお、先の作り方記事では、ベースisoイメージ作成と、アプリケーションのインストール&カスタマイズを2段階に分けて作成するとしていたが、ベースisoイメージがあったからといって、今回の作り直しで、あまり意味の無いこともわかった。Cubicそのものの説明や各アプリケーションをインストールする際の要点や補足説明などは、基本的に先の作り方の記事を読んでもらうとして、ここでは本記事を見ながらDEXCS2024の作成を極力簡潔に再現できるべく、具体的に入力するスクリプトやコピーするファイルの実体をコピペして使えるようになることを目指して取りまとめた。
Table of Contents
以下、作業環境はubuntu-24.04上のCubic2024.09.89で実施している。
また、ブロック毎に背景色を変えて説明してある箇所があり、それぞれのブロックに記述されている内容は以下の通りである点、予めお断りしておく。
cubic 仮想マシン上での入力コマンド
上記コマンドコマンドに対する応答
cubic仮想マシンに収納するファイル名
上記ファイルの内容
テスト&設定用仮想マシンでの応答
Cubic仮想マシン上での直接作業
まずはアップデート
apt update
apt upgrade -y
レポジトリの追加
apt install -y curl
# openfoam2406
curl -s https://dl.openfoam.com/add-debian-repo.sh | bash
wget -q -O - https://dl.openfoam.com/add-debian-repo.sh | bash
# Mesa Driver
add-apt-repository ppa:oibaf/graphics-drivers
# japanese language pack
wget https://www.ubuntulinux.jp/sources.list.d/noble.sources -O /etc/apt/sources.list.d/ubuntu-ja.sources
# openfoam 12
sh -c "wget -O - https://dl.openfoam.org/gpg.key > /etc/apt/trusted.gpg.d/openfoam.asc"
add-apt-repository http://dl.openfoam.org/ubuntu
# FreeCAD
add-apt-repository ppa:freecad-maintainers/freecad-stable
アプリケーションのインストール
apt update
apt install -y open-vm-tools-desktop gcc make perl emacs-lucid shutter kdiff3 libreoffice gnome-tweaks gdebi mesa-utils gedit libfuse2 linux-image-generic build-essential libbz2-dev libdb-dev libreadline-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libsqlite3-dev libssl-dev zlib1g-dev uuid-dev tk-dev git xclip wl-clipboard python3-pyqt5 python3-pyside2.qtwidgets munge slurm-wlm openjdk-8-jre-headless mesa-vdpau-drivers ubuntu-defaults-ja openfoam2406-default openfoam12 freecad $(check-language-support)
後述するDEXCSセットアップスクリプトで、trackerを停止させるようにした。
trackerセットアップ
apt-mark hold tracker
apt-mark hold tracker-extract
apt-mark hold tracker-miner-fs
chmod -x /usr/libexec/tracker-extract-3
chmod -x /usr/libexec/tracker-miner-fs-3
後述するDEXCSセットアップスクリプトで、trackerを停止させるようにした。
Cubic仮想マシン /opt での作業
事前にダウンロード等、収納しておくファイル
/opt/FreeCAD_1.0.0-conda-Linux-x86_64-py311.AppImage
/opt/treefoam-doc_3.26.241007_all.deb
/opt/treefoam-dexcs_3.26.241007_all.deb
/opt/HELYX-OS-2.4.0-linux-x86_64.bin
/opt/VBoxGuestAdditions_7.1.0.iso
/opt/jgp/*
/opt/
export PYENV_ROOT="/opt/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
コマンド入力
#treefoam
gdebi treefoam-dexcs_3.26.241007_all.deb
gdebi treefoam-doc_3.26.241007_all.deb
#ParaView
ln -s ParaView-5.13.1-MPI-Linux-Python3.10-x86_64 paraview
#FreeCAD(AppImage)
ln -s FreeCAD_1.0.0-conda-Linux-x86_64-py311.AppImage freecad
rm *.deb
#HELYX-OS
./HELYX-OS-2.4.0-linux-x86_64.bin
Select components to install
1) HELYX-OS-GUI
2) HELYX-OS-GUI and Kernel
#?
ここで「1」を選択し、インストール先として、/optを指定。
update-alternatives --config java
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 auto mode
1 /usr/lib/jvm/java-21-openjdk-amd64/bin/java 2111 manual mode
2 /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 manual mode
Press to keep the current choice[*], or type selection number: 2
ここで、「2」を入力。
#PyFoam(on local_python 3.10)
git clone https://github.com/pyenv/pyenv.git /opt/.pyenv
source .bashrc
pyenv install 3.10.14
mkdir local_python
cd local_python/
pyenv local 3.10.14
python3 -m venv /opt/local_python
source bin/activate
python3 -m pip install PyFoam
deactivate
TreeFoamセットアップ
/opt/treefoam(35行目〜)
#pyFoam関連
#export pyFoamDir=~/local_python #pyFoamインストール先
export pyFoamDir=/opt/local_python # for DEXCS
export venvPython=yes #仮想環境でpyFoamを起動する
export venvPythonName=python3.10 #仮想環境のpython
/opt/python/pyTreeFoam.py(969行目〜)
#from PySide2 import QtCore
from PyQt5 import QtCore
DEXCSセットアップ
/opt/DEXCS/template/*
/opt/DEXCS/SWAK/*
/opt/DEXCS/template/*
/opt/DEXCS/backgrounds/*
/opt/DEXCS/
~/.config/FreeCAD/user.cfg
~/.TreeFoamUser/configTreeFoam
#!/bin/bash
WHO=`whoami`
sudo mount -o loop,ro /opt/VBoxGuestAdditions_7.1.0.iso /media/
cd /media
sudo ./VBoxLinuxAdditions.run
sudo gpasswd -a $WHO vboxsf
rm -f ~/Desktop/DEXCS/setupVM.sh
rm -f ~/Desktop/DEXCS/setupVBox.sh
sudo reboot
#!/bin/bash
sudo chmod 666 /etc/fstab
echo ".host:/ /mnt fuse.vmhgfs-fuse allow_other,auto_unmount,defaults 0 0" >> /etc/fstab
sudo chmod 644 /etc/fstab
rm -f ~/Desktop/DEXCS/setupVM.sh
rm -f ~/Desktop/DEXCS/setupVBox.sh
sudo reboot
Cubic仮想マシン /usr での作業
事前にダウンロード等、収納しておくファイル
/usr/bin/
#!/bin/sh
#paraview launcher
export LD_LIBRARY_PATH=''
a=`pwd`
openName=`basename $a`.foam
touch $openName
/opt/paraview/bin/paraview --data $openName
rm $openName
#!/bin/bash
cd /opt/local_python
source /opt/local_python/bin/activate #仮想環境を開始
python3 $1 $2 $3 $4 $5 $6 $7 $8 $9 #python3.10を起動
deactivate #仮想環境停止
/usr/lib/openfoam/openfoam2406/platforms/linux64GccDPInt32Ope/bin
/usr/lib/openfoam/openfoam2406/platforms/linux64GccDPInt32Ope/lib/libmeshLibrary.so
/usr/share/backgrounds/warty-final-ubuntu.org.png
/usr/share/backgrounds/warty-final-ubuntu .png
コマンド入力
cd /usr/bin
mv freecad freecad.org
ln -s /opt/freecad freecad
Cubic仮想マシン /etc での作業
事前にダウンロード等、収納しておくファイル
/etc/java-8-openjdk/
#
# The following line specifies the assistive technology classes
# that should be loaded into the Java VM when the AWT is initailized.
# Specify multiple classes by separating them with commas.
# Note: the line below cannot end the file (there must be at
# a minimum a blank line following it).
#
# assistive_technologies=org.GNOME.Accessibility.AtkWrapper
/etc/slurm/
# slurm.conf file generated by configurator easy.html.
# Put this file on all nodes of your cluster.
# See the slurm.conf man page for more information.
#
SlurmctldHost=localhost
#
#MailProg=/bin/mail
MpiDefault=none
#MpiParams=ports=#-#
ProctrackType=proctrack/pgid
ReturnToService=1
SlurmctldPidFile=/var/run/slurmctld.pid
#SlurmctldPort=6817
SlurmdPidFile=/var/run/slurmd.pid
#SlurmdPort=6818
SlurmdSpoolDir=/var/spool/slurmd
SlurmUser=slurm
#SlurmdUser=root
StateSaveLocation=/var/lib/slurm/slurmctld
SwitchType=switch/none
TaskPlugin=task/affinity
#
#
# TIMERS
#KillWait=30
#MinJobAge=300
#SlurmctldTimeout=120
#SlurmdTimeout=300
#
#
# SCHEDULING
SchedulerType=sched/backfill
SelectType=select/cons_res
SelectTypeParameters=CR_CPU
#
#
# LOGGING AND ACCOUNTING
AccountingStorageType=accounting_storage/none
ClusterName=localhost
#JobAcctGatherFrequency=30
JobAcctGatherType=jobacct_gather/none
#SlurmctldDebug=info
SlurmctldLogFile=/var/log/slurm/slurmctld.log
#SlurmdDebug=info
SlurmdLogFile=/var/log/slurm/slurmd.log
#
#
# COMPUTE NODES
NodeName=localhost CPUs=6 Sockets=1 CoresPerSocket=6 ThreadsPerCore=1 State=UNKNOWN
#NodeName=localhost CPUs=4 State=UNKNOWN
PartitionName=debug Nodes=localhost Default=YES MaxTime=INFINITE State=UP
/etc/skel/Desktop
#!/bin/bash
gnome-terminal –command /opt/DEXCS/setupDEXCS.sh
/etc/skel/Desktop/DEXCS
#!/bin/bash
gnome-terminal –command /opt/DEXCS/setupVM.sh
#!/bin/bash
gnome-terminal –command /opt/DEXCS/setupVBox.sh
# DEXCS2024を仮想環境で使用する際のセットアップについて
DEXCS2021までは、仮想環境で使用する際のGuestAdditionがインストールされていましたが、DEXCS2022以降ではインストールできなくなり、普通にDEXCSセットアップしただけでは、ベースマシンとの間で共有ファイルが使えません。VirtualBoxでは、マウスドラッグによる画面のサイズ変更も出来ません。
共有ファイルを使用したり、(VirtualBoxで)画面のサイズ変更できるようにするためには、別途以下のセットアッププログラムを実行する必要があります。
但し、インストールモードでのみ有効で、ライブモードでは機能しません(共有ファイルは使えません)。
##VirtualBoxで使用する場合
* setupVBox.sh
##VmPlayer Workstationで使用する場合
* setupVM.sh
ファイルマネージャから起動する場合は、右クリックメニューで「プログラムとして実行」を選択して下さい(ダブルクリックは不可。これもDEXCS2022というよりは、ubuntuの仕様が変わりました)。プログラムは管理者権限で実行するコマンドが含まれているので、パスワードの入力が必要です。正しいパスワードが入力されると自動的に再起動されます。
# 注意事項
* 使用法(VirtualBox上で、VMPlayer用のスクリプトを使うなど)間違えると、たいへんなことになるので気をつけて下さい。
* VMPlayerで共有フォルダの設定をしていない状態で実行すると、仮想マシンが壊れます。
* 上記以外の仮想環境での使用については、検証できておりませんので悪しからず。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<TITLE></TITLE>
</HEAD>
<BODY BGCOLOR="aliceblue">
<H2>DEXCS2024 for OpenFOAM 収録ケースとドキュメント
</H2>
<HR>
<IMG SRC="./doc/dexcsContents.png">
<HR>
<H3>DEXCSオリジナル資料</H3>
<BLOCKQUOTE>
<UL>
<LI><A HREF="./doc/1_123DEXCS.pdf">まずは使ってみる</A>
<LI><A HREF="./doc/2_aboutDEXCS2024OF.pdf">DEXCS-OFの概要</A>
<LI><A HREF="./doc/3_DEXCS2024_howtoCAD.pdf">モデル作成法(FreeCADの基本)</A>
<LI><A HREF="./doc/4_DEXCS2024_howtoMeshing.pdf">メッシュ作成法</A>
<LI><A HREF="./doc/5_DEXCS2024_LauncherModel.pdf">DEXCSランチャーの使い方(モデル変更例)</A>
<LI><A HREF="./doc/6_DEXCS2024_LauncherSolver.pdf">DEXCSランチャーの使い方(ソルバー変更例)</A>
<LI><A HREF="./doc/7_Tutorials2024.pdf">標準チュートリアルケースの調べ方</A>
<LI><A HREF="./doc/8_aboutDexcsPlus2024.pdf">dexcsPlusについて</A>
<LI><A HREF="./doc/10_DEXCS2024_plotTools.pdf">DEXCSプロットツールについて</A>
<LI><A HREF="./doc/9_DEXCS2024_a_la_carte.pdf">その他諸々</A>
<LI><A HREF="./doc/12_DEXCS2024_HelyxOS.pdf">Helyx-OSの使い方</A>
<LI><A HREF="./doc/13_DEXCS2024_CfdOF.pdf">CfdOFの使い方</A>
<LI><A HREF="./doc/11_DEXCS2024OF_Install.pdf">DEXCS-OFのセットアップ方法</A>
</BLOCKQUOTE>
<H3>一般公開資料</H3>
<BLOCKQUOTE>
<LI><A HREF="./doc/TreeFoam-manual.pdf">TreeFoamマニュアル 3.26-241007</A>
<BLOCKQUOTE>DEXCSのAboutTreeFoamのページ(<A HREF="http://opencae.gifu-nct.ac.jp/pukiwiki/index.php?AboutTreeFoam">外部リンク</A>)にて公開されているものです。
</BLOCKQUOTE>
<LI><A HREF="./doc/UserGuideJa.pdf">OpenFOAMユーザースガイド Ver.3.0.1</A>
<BLOCKQUOTE>一般社団法人オープンCAE学会にて公開されているもの(<A HREF="http://www.opencae.or.jp/activity/committee/ducument_translation/">外部リンク</A>)です。
</BLOCKQUOTE>
<LI><A HREF="./doc/ProgrammersGuideJa.pdf">OpenFOAMプログラマーズスガイド Ver.2.3.0</A>
<BLOCKQUOTE>一般社団法人オープンCAE学会にて公開されているもの(<A HREF="http://www.opencae.or.jp/activity/committee/ducument_translation/">外部リンク</A>)です。
</BLOCKQUOTE>
<LI><A HREF="./doc/ParaViewTutorial42-jp.pdf">Paraviewチュートリアル Ver.4.2</A>
<BLOCKQUOTE>一般社団法人オープンCAE学会にて公開されているもの(<A HREF="http://www.opencae.or.jp/activity/committee/ducument_translation/">外部リンク</A>)です。
</BLOCKQUOTE>
<LI><A HREF="./doc/User_Guide-cfMesh_v1.1.pdf">cfMesh User Guide v1.1</A>
<BLOCKQUOTE>GPL版として公開(<A HREF="https://cfmesh.com/cfmesh/">外部リンク</A>)されているものです(英文)。
</BLOCKQUOTE>
</UL>
</BLOCKQUOTE>
<hr>
</BODY>
</HTML>
/etc/skel/Desktop/DEXCS/cfMeshTutorials/*
/etc/skel/Desktop/DEXCS/dexcsPlus/*
/etc/skel/Desktop/DEXCS/dexcsTutorials/*
/etc/skel/Desktop/DEXCS/doc/*
/etc/skel/Desktop/DEXCS/mixing_elbow/*
/etc/skel/Desktop/DEXCS/slurmScript/
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
<TITLE></TITLE>
</HEAD>
<BODY BGCOLOR="aliceblue">
<H1>SLURMについて
</H1>
DEXCSにはSLURMというジョブスケジューラ(バッチシステムとも云う)がインストールされていますが、DEXCSをインストールしただけでは動きません。管理者権限で、設定ファイルを編集してデーモンサービスを起動する必要があります。
<H2>設定ファイル(slurm.conf)
</H2>
設定ファイルは、/etc/slurm/slurm.conf にあり、デフォルトでは以下のようになっています。
<BLOCKQUOTE>
# slurm.conf file generated by configurator easy.html.<br/>
# Put this file on all nodes of your cluster.<br/>
# See the slurm.conf man page for more information.<br/>
#<br/>
SlurmctldHost=localhost<br/>
#<br/>
#MailProg=/bin/mail<br/>
MpiDefault=none<br/>
#MpiParams=ports=#-#<br/>
ProctrackType=proctrack/pgid<br/>
ReturnToService=1<br/>
SlurmctldPidFile=/var/run/slurmctld.pid<br/>
#SlurmctldPort=6817<br/>
SlurmdPidFile=/var/run/slurmd.pid<br/>
#SlurmdPort=6818<br/>
SlurmdSpoolDir=/var/spool/slurmd<br/>
SlurmUser=slurm<br/>
#SlurmdUser=root<br/>
StateSaveLocation=/var/lib/slurm/slurmctld<br/>
SwitchType=switch/none<br/>
TaskPlugin=task/affinity<br/>
#<br/>
#<br/>
# TIMERS<br/>
#KillWait=30<br/>
#MinJobAge=300<br/>
#SlurmctldTimeout=120<br/>
#SlurmdTimeout=300<br/>
#<br/>
#<br/>
# SCHEDULING<br/>
SchedulerType=sched/backfill<br/>
SelectType=select/cons_tres<br/>
SelectTypeParameters=CR_Core<br/>
#<br/>
#<br/>
# LOGGING AND ACCOUNTING<br/>
AccountingStorageType=accounting_storage/none<br/>
ClusterName=localhost<br/>
#JobAcctGatherFrequency=30<br/>
JobAcctGatherType=jobacct_gather/none<br/>
#SlurmctldDebug=info<br/>
SlurmctldLogFile=/var/log/slurm/slurmctld.log<br/>
#SlurmdDebug=info<br/>
SlurmdLogFile=/var/log/slurm/slurmd.log<br/>
#<br/>
#<br/>
# COMPUTE NODES<br/>
NodeName=localhost CPUs=6 Sockets=1 CoresPerSocket=6 ThreadsPerCore=1 State=UNKNOWN<br/>
#NodeName=localhost CPUs=4 State=UNKNOWN<br/>
PartitionName=debug Nodes=localhost Default=YES MaxTime=INFINITE State=UP<br/>
</BLOCKQUOTE>
下から3行目で6コアのマシンを想定しています。この数字(2箇所)を利用環境に合わせてください。
<H2>デーモンサービス起動方法
</H2>
runSlurm.sh を実行します。<br>
管理者として起動する必要があるので、パスワードを入力する必要があります。<br>
設定に問題がなければ、以下のような画面が現れるはずです。<br>
<IMG SRC="../doc/icons/slurm_sinfo.png">
<H2>ジョブのサブミット方法
</H2>
サブミットしたいジョブのケースフォルダ中に、同梱のsubmit.sh(下記) をコピー(&必要に応じて改変)して使用ください。
<BLOCKQUOTE>
1: #!/bin/bash<br/>
2: #SBATCH -n 4<br/>
3: #SBATCH -J DexcsOF<br/>
4: #SBATCH -e submit.sh.e%J<br/>
5: #SBATCH -o solve.log<br/>
6: <br/>
7: . /usr/lib/openfoam/openfoam2306/etc/bashrc<br/>
8: . $WM_PROJECT_DIR/bin/tools/RunFunctions<br/>
9: <br/>
10: rm -rf ./processor*<br/>
11: <br/>
12: cartesianMesh<br/>
13: renumberMesh -overwrite<br/>
14: checkMesh<br/>
15: pyFoamDecompose.py . ${SLURM_NPROCS}<br/>
16: ##decomposePar<br/>
17: mpirun $(getApplication) -parallel<br/>
18: reconstructPar -latestTime<br/>
19: <br/>
</BLOCKQUOTE>
2行目で並列数(4)を指定しており、decomposeParDict は、この数字によって自動的に書き換えられるようになっています(15行目。但し、methodはscotchの一択)。systemフォルダ下の、decomposeParDictを優先したい場合には、15行目をコメントアウト(行頭に##)して、16行目(行頭の##を削除)を使って下さい。<br/>
メッシュが作成済のケースに対しては、12〜14行目をコメントアウトして使って下さい。
<br/>
<br/>
また、同梱のsubmit-12.shは、OpenFOAM 12 で使用するもので、7行目が
<BLOCKQUOTE>
7: . /opt/openfoam12/etc/bashrc<br/>
</BLOCKQUOTE>
と変更してあるだけです。
</BODY>
</HTML>
#!/bin/bash
sudo systemctl start slurmctld
sudo systemctl start slurmd
gnome-terminal -t dexcsSlurm --geometry=90x5-0-0 -- bash -c 'sinfo; bash'
#!/bin/bash
#SBATCH -n 4
#SBATCH -J DexcsOF
#SBATCH -e submit.sh.e%J
#SBATCH -o solve.log
. /usr/lib/openfoam/openfoam2406/etc/bashrc
. $WM_PROJECT_DIR/bin/tools/RunFunctions
rm -rf ./processor*
cartesianMesh
renumberMesh -overwrite
checkMesh
python3.10 /opt/local_python/bin/pyFoamDecompose.py `pwd` ${SLURM_NPROCS}
##decomposePar
mpirun $(getApplication) -parallel
reconstructPar -latestTime
#!/bin/bash
#SBATCH -n 4
#SBATCH -J DexcsOF
#SBATCH -e submit.sh.e%J
#SBATCH -o solve.log
. /opt/openfoam12/etc/bashrc
. $WM_PROJECT_DIR/bin/tools/RunFunctions
rm -rf ./processor*
cartesianMesh
renumberMesh -overwrite
checkMesh
python3.10 /opt/local_python/bin/pyFoamDecompose.py `pwd` ${SLURM_NPROCS}
##decomposePar
mpirun $(getApplication) -parallel
reconstructPar -latestTime
./etc/skel/
color_prompt=yes
if [ "$color_prompt" = yes ]; then
if [[ ${EUID} == 0 ]] ; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
else
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w \$\[\033[00m\] '
fi
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h \w \$ '
fi
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
. /opt/openfoam12/etc/bashrc
echo "openfoam12 is enabled."
color_prompt=yes
if [ "$color_prompt" = yes ]; then
if [[ ${EUID} == 0 ]] ; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] '
else
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w \$\[\033[00m\] '
fi
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h \w \$ '
fi
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
. /usr/lib/openfoam/openfoam2406/etc/bashrc
echo "OpenFOAMv2406 is enabled."
./etc/skel/.HELYX-OS/
openfoam.basedir = /usr/lib/openfoam/openfoam2406
paraview.basedir = /opt/paraview/bin/paraview
3d.lock.intractive.memory = 4096
3d.lock.intractive.time = 2000
3d.transparency.memory = 10240
helyx.default.terminal =
default.file.manager =
default.hostfile.none = false
hide.empty.patches = true
hide.processor.patches = true
hide.processor.cyclic.patches = true
batch.monitor.dialog.max.row = 10000
use.docker = false
docker.image =
recent.projects =
last.open.dir =
last.import.dir =
./etc/skel/.TreeFoamUser/*
/etc/skel/.config/
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/"
XDG_TEMPLATES_DIR="$HOME/"
XDG_PUBLICSHARE_DIR="$HOME/"
XDG_DOCUMENTS_DIR="$HOME/"
XDG_MUSIC_DIR="$HOME/"
XDG_PICTURES_DIR="$HOME/"
XDG_VIDEOS_DIR="$HOME/"
ja_JP
/etc/skel/.config/FreeCAD/*
/etc/skel/.config/dconf/*
/etc/skel/.local/share/FreeCAD/*
/etc/skel/.local/share/applications
[Desktop Entry]
Type=Application
Name=Helyx-OS
Exec=/opt/Engys/HELYX-OS/v2.4.0/HELYX-OS.sh
Icon=/opt/Engys/HELYX-OS/v2.4.0/img/HELYX-OS.png
Terminal=false
Name[ja]=Helyx-OS
[Desktop Entry]
Type=Application
Name=jgp
Exec=/opt/jgp/startupJgp
Icon=/opt/jgp/images/splash.png
Terminal=false
Name[ja]=jgp。
[Desktop Entry]
Comment=terminalForOpenFOAM-v2406
Name=OF-v2406Terminal
Exec=gnome-terminal -- /bin/bash --rcfile ~/.bashrc-OF4v2406
Terminal=false
Type=Application
Icon=/opt/DEXCS/icons/image_normal.png
Name[ja_JP]=ofv2406
[Desktop Entry]
Comment=terminal For openfoam-12
Name=OF-12Terminal
Exec=gnome-terminal -- /bin/bash --rcfile ~/.bashrc-OF4-12
Terminal=false
Type=Application
Icon=/opt/DEXCS/icons/image_normal.png
Name[ja_JP]=of-12
[Desktop Entry]
Comment=Paraview
Name=Paraview
Exec=/opt/paraview/bin/paraview
Terminal=false
Type=Application
Icon=/opt/DEXCS/icons/paraview.png
/etc/skel/.local/gnome-shell/*
/etc/skel/.local/gvfs-metadara/*
/etc/skel/.local/nautilus/*
/etc/skel/.local/org.gnome.TextEditor/*
/etc/skel/.local/recently-used.xbel
残された問題
DEXCS2024は、本執筆時点でまだ開発途上でいくつか問題もあるが、以下、致命的ではない(と考えている)レベルの問題のうち、本記事テーマであるiso作成面での課題について記しておく。
起動時エラー
DEXCS2024 for OpenFOAM(R) 不具合・更新情報にある起動時エラーについては依然解消できていない。
Kernelアップデート
本執筆時点(2024/12/16)で、Kernelは、6.8.0-50となっている。更新された時にどうなるか?
【2024/12/18 追記】依然としてKernel更新(6.8.0-50 ⇒ 6.8.0-51)に失敗している。
アプリウィンドウのサイズ変更
マウスカーソルをウィンドウの端や隅に持ってくると、マウスカーソルが変化してウィンドウのサイズを任意に変更できるが、一部のアプリケーションではそれが全く出来なかったり、局所的にしか出来なかったりする。
⇒ キーボードでAlt+F8 を押すと、マウスカーソルが変化し、ウインドウの端や隅に移動してサイズ変更できるようになるので、この方法で凌いでいる。
⇒ 他にも、ウィンドウのトップバーで右クリックする「サイズを変更」が現れる。
公開版との違い
すでに公開済のisoイメージは、基本的に本記事に記載された方法で作成したものであるが、改めて本記事の検証用に作成したisoイメージとでは、挙動の一部が異なっていた。具体的にわかっていることとして、
- ubuntuインストーラーの挙動が違う
- dockツールバーの「ファイル」アイコンが違う
- (他にもあるかもしれない)
全スクリプト
最後に、本記事の検証用にCubicマシン上で実行したコマンドを以下に記しておく。
apt update
apt upgrade -y
apt install -y curl
# openfoam2406
curl -s https://dl.openfoam.com/add-debian-repo.sh | bash
wget -q -O - https://dl.openfoam.com/add-debian-repo.sh | bash
# Mesa Driver
add-apt-repository ppa:oibaf/graphics-drivers
# japanese language pack
wget https://www.ubuntulinux.jp/sources.list.d/noble.sources -O /etc/apt/sources.list.d/ubuntu-ja.sources
# openfoam 12
sh -c "wget -O - https://dl.openfoam.org/gpg.key > /etc/apt/trusted.gpg.d/openfoam.asc"
add-apt-repository http://dl.openfoam.org/ubuntu
# FreeCAD
add-apt-repository ppa:freecad-maintainers/freecad-stable
apt update
apt install -y open-vm-tools-desktop gcc make perl emacs-lucid shutter kdiff3 libreoffice gnome-tweaks gdebi mesa-utils gedit libfuse2 linux-image-generic build-essential libbz2-dev libdb-dev libreadline-dev libffi-dev libgdbm-dev liblzma-dev libncursesw5-dev libsqlite3-dev libssl-dev zlib1g-dev uuid-dev tk-dev git xclip wl-clipboard python3-pyqt5 python3-pyside2.qtwidgets munge slurm-wlm openjdk-8-jre-headless mesa-vdpau-drivers ubuntu-defaults-ja openfoam2406-default openfoam12 freecad $(check-language-support)
apt-mark hold tracker
apt-mark hold tracker-extract
apt-mark hold tracker-miner-fs
chmod -x /usr/libexec/tracker-extract-3
chmod -x /usr/libexec/tracker-miner-fs-3
cd /opt/
gdebi treefoam-dexcs_3.26.241007_all.deb
gdebi treefoam-doc_3.26.241007_all.deb
#ParaView
ln -s ParaView-5.13.1-MPI-Linux-Python3.10-x86_64 paraview
#FreeCAD(AppImage)
ln -s FreeCAD_1.0.0-conda-Linux-x86_64-py311.AppImage freecad
rm *.deb
#HELYX-OS
./HELYX-OS-2.4.0-linux-x86_64.bin
update-alternatives --config java
git clone https://github.com/pyenv/pyenv.git /opt/.pyenv
source .bashrc
pyenv install 3.10.14
mkdir local_python
cd local_python/
pyenv local 3.10.14
python3 -m venv /opt/local_python
source bin/activate
python3 -m pip install PyFoam
deactivate
cd /opt/TreeFoam/
### <- copy
cd python/
### <- copy
cd /opt/
mkdir DEXCS
chmod 777 -R DEXCS/
cd DEXCS/
### <- copy
cd /usr/bin/
mv freecad freecad.org
ln -s /opt/freecad freecad
### <- copy
cd /usr/lib/openfoam/openfoam2406/platforms/linux64GccDPInt32Opt/bin/
### <- copy
cd ../lib/
### <- copy
cd /usr/share/backgrounds/
### <- copy
cd /etc/java-8-openjdk/
### <- copy
cd /etc/slurm/
### <- copy
cd /etc/skel/
mkdir .pyFoam
### <- copy
mkdir /etc/skel/.config
cd /etc/skel/.config/
### <- copy
mkdir /etc/skel/.local
cd /etc/skel/.local
mkdir share
cd share
### <- copy
但し、### <- copy と記してある部分は、ベースマシンからCubic仮想マシンへのGUIコピー作業が必要である。また、コピーするファイル一式はこちらからダウンロードできるようになっているので、興味のある方は本記事を検証していただくとともに、自前のDEXCSなんちゃら…にも挑戦されたい。