更新日: 2025年4月5日
2025年4月 作成者:藤家拓大
コンピュータを用いて物理解析を始めるために必要な設定などをまとめた。必要に応じて参照してほしい。使用したコンピュータは Windows 11 Pro edition, VAIO SX12。
この資料は「C言語」「ROOT」「Geant4」など、物理解析によく使われるソフトウェアが使える環境を構築するまでをまとめてある。環境構築はどれだけ頑張っても研究成果にはならないので、時間だけが過ぎてしまう前に必要な部分のみを最低限の労力で読んで自身の研究に生かしてほしい。この資料は盲目的にコピペを繰り返すことで最低限の研究環境が整うことを意識して書いてある。不備などがあれば藤家まで教えてください。
この資料では、Windows上においてWSLを用いてUbuntuの仮想マシンを立ち上げ、その仮想マシン上で環境構築を進める。これらの作業は主にCUIを用いて行う。WindowsOSでは「コマンドプロンプト」、「PowerShell」など、MacOSでは「ターミナル」を用いてコンピュータに指示を送ることができる。それぞれのCUIプロンプトでは使えるコマンドやライブラリが異なるため、それらに注意して進めること。
研究環境を整える前に、データの取り扱いについて確認する。コンピュータなどの電子機器は大事な時期に壊れるようにできているので、バックアップを必ず取ること。甲南生の場合は学生アカウントでOneDriveが利用できるため、これを使ってバックアップを取るのが一番簡単だと思われる。そのほか、バックアップ用HDDなども用意してあるとなお良い。コンピュータがいつ壊れてもいいように、何か作業をする際は1文字打つごとに保存ボタンを押すこと。プリンターなどの外部機器は卒論・修論直前など多人数が使用する時期に必ず壊れるので、余裕をもって作業を済ませておくこと。
WSL (Windows Subsystem for Linux) は、Windows OSの中で仮想的に別のOSを動かすことができるシステム。物理解析などでは、C言語などを比較的簡単に扱うことができるUnix系OSのディストリビューションが好まれる。ここではWSLを通してUbuntuを利用する。詳しくはhttps://learn.microsoft.com/ja-jp/windows/wsl/installを参照。
Power shell を起動して以下のコマンドを打つと、インストール可能なディストリビューション一覧を確認できる。
$ wsl --list --online ここで「Linux 用 Windows サブシステムがインストールされていません。」と言われた場合、素直に必要なパッケージをインストールする。
$ wsl.exe --installコントロールパネル→プログラム→Windows機能の有効化または無効化、において、「Linux 用 Windows サブシステム」と「Hyper-V」にチェックを入れ有効化する。
OKを押すと再起動を促されるため従う。
PowerShell上で仮想化を有効にする。
$ wsl.exe --install --no-distributionApple silicon with
VMwareの場合はWSL1しか対応していないので、wsl --set-default-version 1
のコマンドを送る。
次に、Ubuntuをインストールする。
$ wsl --install特定のディストリビューション(ここではUbuntu24.04 LTS)をインストールしたければ
$ wsl --install -d Ubuntu-24.04などと入力すればいい。UNIX username とパスワードを適当に決めればインストール終了。
なにもしなければこの時点でUbuntuが起動しているはずである。インストールされた仮想OSの概要を確認するには、ubuntu上で以下のコマンドを打つ。
$ lsb_release -a 次に、最初からインストールされているパッケージのアップデートを行う。ubuntu上で以下のコマンドを打ち、最新版に更新する。
$ sudo apt update
$ sudo apt upgradeこれらが終了すれは、以下のコマンドを打って一度Ubuntuを終了する。
$ exitインストール済みのディストリビューションを確認は、PowerShell上で以下のコマンドを打つ。
$ wsl -l -v再度立ち上げるには、PowerShell上で
$ wsl
or
$ wsl -d Ubuntu-24.04と入力する。
C言語などで書かれたプログラムのコンパイルはubuntu上で行える。
$ gcc hoge.c
$ ./a.out ちなみに、削除はめんどくさいらしい。以下のサイトを参照(https://qiita.com/zakoken/items/61141df6aeae9e3f8e36)
emacsはターミナル上で起動するテキストエディタ。様々なキーバインドが使えてそれらを自由にカスタマイズできる。ターミナル上で動作するエディタは、sshなどでサーバーにアクセスしてその中のファイルを編集する際に必須となる。同様のものとして、vimやnanoがある。
インストールは以下のコマンドを実行する。
$ sudo apt install emacsインストール時にメーラー設定について聞かれたら好きなものを選択すればいい。
emacsは以下のコマンドで起動する。
$ emacs hoge.cここで、 hoge.c は開きたいテキストファイルである。
終了時は ctrl-x ctrl-c を打つ。
gnuplotは簡易的なグラフ描画ソフト。頑張れば多様な使い方ができるが、主にはとりあえずデータを見たい時などに重宝する。インストールはubuntu上で以下のコマンドを打てばいい。
$ sudo apt isntall gnuplot以下のコマンドで実行。
$ gnuplot1列目にx座標、2列目にy座標が書かれたテキストファイル
hoge.txt を描画したければgnuplotを起動したうえで、
> plot "hoge.txt"と打てばいい。ここで、
hoge.txtは1列目にx軸、2列目にy軸のデータが入っている必要がある。
複数列のデータが入ったテキストファイルから任意の列をx、y軸に指定して描画したい場合、例えばx軸に4列目、y軸に2列目の場合は以下のようにすればいい。
> plot "hoge.txt" u 4:2終了は q と打てばいい。
root はcernの提供する総合解析プラットフォームである。大量のデータを裁けてかつFittingなどよく使う物理解析を関数として利用できる。インストール手順は公式サイト(https://root.cern/install/)に記載されていて、ここではソースファイルを自身のコンピュータでコンパイルする手法(https://root.cern/install/build_from_source/)でインストールする。
まず、インストールに必要なライブラリたちをそろえる。https://root.cern/install/dependencies/に記載の通りにインストールする。OSはUbuntuだから、
$ sudo apt install binutils cmake dpkg-dev g++ gcc libssl-dev git libx11-dev libxext-dev libxft-dev libxpm-dev python3 libtbb-dev libgif-devubuntu24以降は上記に加えてlibvdt-dev
が必要。次に、推奨パッケージをインストールする。
$ sudo apt install gfortran libpcre3-dev libglu1-mesa-dev libglew-dev libftgl-dev libfftw3-dev libcfitsio-dev libgraphviz-dev libavahi-compat-libdnssd-dev libldap2-dev python3-dev python3-numpy libxml2-dev libkrb5-dev libgsl-dev qtwebengine5-dev nlohmann-json3-dev libmysqlclient-dev libgl2ps-dev liblzma-dev libxxhash-dev liblz4-dev libzstd-dev次に、インストール専用のディレクトリを作る。ここではホームディレクトリ直下に「local」というディレクトリを作っており、この中で作業することによってrootのライブラリがほかの重要ファイルと混ざらないようにする。
$ cd #ホームディレクトリに移動
$ mkdir local # インストール用ディレクトリ作成
$ cd local # つくったディレクトリに移動する次に、rootのソースコードをダウンロードする。ソースコードは公式サイト()にあるが、最新の安定版が欲しければ以下のように
git
で取得できる。公式サイトからダウンロードした場合はそれを
local ディレクトリに移動したのち、
tar -zxvf <source-file> で解凍しておく。
$ git clone --branch latest-stable --depth=1 https://github.com/root-project/root.git root-srcインストール専用のディレクトリを作成して、ビルド用ディレクトリに入る。
$ mkdir root-install
$ mkdir root-build
$ cd root-buildここで、「local」直下には「root-src」「root-build」「root-install」の3つのディレクトリが存在するはずで、順にrootのソースファイル、インストール作業用ディレクトリ、インストール先になるよう後述のコマンドで指定を行う。次に、cmakeコマンドでインストールに必要なライブラリの確認を行う。
$ cmake -DCMAKE_INSTALL_PREFIX=$HOME/local/root-install -DPYTHON_EXECUTABLE=/usr/bin/python3 ../root-src-DCMAKE_INSTALL_PREFIX
はインストール先のディレクトリを決める。
-DPYTHON_EXECUTABLE
はコンピュータに予め入っているpythonライブラリとの紐づけを行う。これはpythonでrootを使いたい時などに必須となる。後述の
jupyter lab
を使う際も必要である。必要であれば、以下のオプションを付けて再度コンパイルを行う。
-DCMAKE_CXX_STANDARD
C++コンパイラのバージョン指定を行う。-Dbuiltin_vdt=ON VDTライブラリを使用する。-Dbuiltin_xrootd=ON xrootdライブラリを使用する。errorやworningが出ていないことを確認したら、makeする。
$ make -j8“-j8”はプロセスを実行する並列数を決めており、使用するパソコンのコア数を確認したのち自由に決めてよい。 次に、rootをインストールする。
$ make install上記の二つのコマンドを併せ持つcmake --build . --target install
を利用してもよい。最後に、「root」とコマンドを打った際にrootが起動するよう、共通設定を行う。
$ source ../root-install/bin/thisroot.sh上記コマンドはubnutuを起動するたびに毎度行う必要があるため、面倒であれば起動時に自動的に読み込まれる設定ファイル(ホームディレクトリの.bashrc)に上記コマンドを追記すればいい。この時、
thisroot.sh へのパスに注意すること。
ubuntu上で「root」とコマンドを打った際に以下のような画面が表示されたらOK。
チュートリアルを起動するにはroot上で以下のコマンドを打つ。
root [0] .demorootを終了するには以下のコマンドを打てはいい。
root [0] .q以上です。
Geant4は粒子輸送などシミュレーションに使用されるライブラリ。公式サイト(https://geant4-userdoc.web.cern.ch/UsersGuides/InstallationGuide/html/)に記載の通りに進めていく。
まずは依存関係にあるパッケージをインストールする。
$ sudo apt install cmake expat libexpat1-dev xorg-dev freeglut3-dev Qt5*次に、geant4をダウンロードする。これは公式サイト(https://geant4.web.cern.ch/download/11.2.2.html)から持ってくる。こちらもroot同様、インストール専用ディレクトリの中で作業を行う。
$ cd local
$ tar -zxvf geant4-v10.7.4.tar.gz
$ mkdir geant4-v10.7.4-install
$ mkdir geant4-v10.7.4-build
$ cd geant4-v10.7.4-buildビルド用ディレクトリに入ったのち、以下の通りオプションを付けてcmakeする。
$ cmake -DCMAKE_INSTALL_PREFIX=$HOME/local/geant4-v10.7.4-install -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_QT=ON -DGEANT4_BUILD_MULTITHREADED=ON $HOME/local/geant4-v10.7.4エラーがなければmakeする。
$ make -j8
$ make install問題なく終了すれば、以下の文言を.bashrcに記載する。
source $HOME/local/geant4-v10.7.4-install/bin/geant4.sh
source $HOME/local/geant4-v10.7.4-install/share/Geant4-10.7.4/geant4make/geant4make.sh
alias gmake='cmake -DGeant4_DIR=$HOME/local/geant4-v10.7.4-install/share/Geant4'記入後、ubuntu
を再起動、または.bashrcの再読み込みをする。再読み込みはubuntu上で
$source .bashrc を実行すればいい。
再起動後はサンプルプログラムを動かしてみる。説明書の通りに以下の通りにコマンドを打つ。
$ cd local/geant4-v10.7.4/examples/basic
$ mkdir B1-build
$ cd B1-build
$ gmake ../B1
$ make問題なくコンパイルできれば、 B1-build 内に
exampleB1
という実行ファイルが作られるはずである。これを実行してみて以下のような画面が現れたらよい。
$ ./exampleB1
以上です。
Jupyter labはブラウザ上で動作するプログラムの対話型(インタープリタ型)実行環境。これまでの一般的なプログラムは、ソースファイルをエディタで編集したのちターミナル上でコンパイル、実行するが、対話型の場合はプログラムを一行ずつ実行できる。実行結果を逐一確認しながらデータ解析を進めることができる。注意として、実行環境はブラウザであるがコンパイラ等は自身のパソコンに入っているものを使っているため、インターネット接続は不要である。
ここでは、対話型でroot, python, mathematicaを使えるようにする。
$ sudo apt install python3-pip
$ sudo apt install nodejs
$ pip3 install jupyter jupyterlab再起動後、ubuntu上で以下のコマンドを実行
ライブラリ構築のために、以下のコマンドを実行する。
$ jupyter lab buildここでエラーが出た場合、対処する。私の場合はnodejsを最新版にしろと言われたので、以下のコマンドで最新版にアップデートした。
$ sudo apt update
$ sudo apt install -y curl
$ curl -fsSL https://deb.nodesource.com/setup_20.x -o nodesource_setup.sh
$ sudo bash nodesource_setup.sh
$ sudo apt-get install nodejs -y実行後に再度 jupyer lab build
してエラーが出なければよし。
以下のサイトを参考にした。(https://qiita.com/MizutoKadowaki0312/items/0f8ac51c7c00303f456e)導入は、https://www.wolfram.com/engine/のサイトからダウンロードする。OSはLinuxを選択。
ダウンロードしたファイルを作業ディレクトリに移して実行する。
$ cp ~/Downloads/WolframEngine_14.1.0_LIN.sh ./local/
$ cd local
$ sudo ./WolframEngine_14.1.0_LIN.shインストール先のディレクトリを聞かれるが好きなところに設定すればいい。終了後に以下のコマンドを入力してwolframscriptを起動する。
$ wolframscript起動後、ダウンロード時に作成したIDとパスワードの入力を求められるため、これを入力する。
In[1]:=と表示されたらOK。
次に、wolframscriptをjupyter labから扱えるようにする。
$ git clone https://github.com/WolframResearch/WolframLanguageForJupyter.git
$ cd WolframLanguageForJupyter
$ ./configure-jupyter.wls add最後にJupyter labを再起動して、カーネル一覧を取得する。
$ jupyter lab build
$ jupyter kernelspec listこれでroot, python, wolframengineの三つがあればよし。
Jupyer labは以下のコマンドで実行できる。
$ jupyter labこれでターミナル上に表示されるURLをクリックすればブラウザ上にJupyter labが起動する。注意として、Jupyter labはソフトウェアの表示にブラウザを使っているだけであって、pythonなどは自身のコンピュータに入っているライブラリを使っている。外部とネットワーク接続しているわけではないことに留意。
デフォルトでブラウザが立ち上がるようにしたければ、以下のコマンドを実行すればいい
$ jupyter lab --generate-config生成された設定ファイルを開き、以下のように設定する。
# c.ServerApp.use_redirect_file = True
c.ServerApp.use_redirect_file = False
# c.ServerApp.browser = ''
c.ServerApp.browser = '/mnt/c/Program\ Files\ \(x86\)/Microsoft/Edge/Application/msedge.exe %s'以下のような画面が出ればOK。
いずれかの言語のノートブックを選択して、任意のプログラムを書いて実行できれば良い。プログラムと同時にマークダウン記法によるコメントも記述することができる。
私の環境ではsys_prefixlevel settings are read-only, using user level for migration to lockedExtension
のエラーが出て治らない。原因不明だが、とりあえず
jupyter lab & として起動すれば問題なく使える。
Latexは数式などを簡単に入力できる文章作成ライブラリ。ubuntu上で以下のコマンドを実行してインストールする。
$ sudo apt install texlive-full使い方の説明は別資料(まだ作っていない)
PowerPointでlatex (https://www.jonathanleroux.org/software/iguanatex/) → windows上にlatexが必要、面倒だからパスすることにした
別資料を参照