概要
ROOTのインストールはいくつかのやり方があります.
まず一番簡単なのが, パッケージ管理システムを使う方法です. brew
(MacOS), apt
(Debian系, UbuntuやWSLなど), dnf
(RedHat系, CentOSやFedoraなど), pacman
(Arch Linux), snap
などのコマンドを使います. 例えば, brew install root
のコマンド一発でROOTと, ROOTが必要とする (依存する, といいます) パッケージを全て入れることができます. 大変煩雑な依存パッケージを自動で入れることができます.
しかし, この方法でのROOTのインストールには問題があることが比較的多く, 問題があったとしても修正が困難になります. そこで, 別の方法である, ROOTのソースコードを自身のコンピューターでコンパイルする方法を本項では薦めます. 自身のコンパイラなどを含めた環境を同時に試験することができます.
方法はROOTの公式ガイドを参照してください.
本項ではCentOS系でやり方を紹介し, 適宜他のシステムでのやり方を補足します.
CentOS系
コンパイル準備
ROOTの依存パッケージは dnf
で入れます.
パッケージ管理システムをアップデートします.
sudo dnf install epel-release
基本的なツールをインストールします.
sudo dnf config-manager --set-enabled powertools
sudo dnf groupinstall "Development Tools"
sudo dnf -y install git make cmake gcc-c++ gcc binutils wget libX11-devel libXpm-devel libXft-devel libXext-devel python38 openssl-devel eigen3-devel sqlite sqlite-devel
ROOTが依存するパッケージをインストールします.
sudo dnf -y install redhat-lsb-core gcc-gfortran pcre-devel mesa-libGL-devel mesa-libGLU-devel glew-devel ftgl-devel mysql-devel fftw-devel cfitsio-devel graphviz-devel libuuid-devel avahi-compat-libdns_sd-devel openldap-devel python3-numpy libxml2-devel gsl-devel readline-devel qt5-qtwebengine-devel R-devel R-Rcpp-devel R-RInside-devel
ROOTのインストール
ROOTのソースコードをタウンロードして, 展開します.
mkdir root_build
cd root_build
wget https://root.cern/download/root_v6.26.04.source.tar.gz
tar -xzvf root_v6.26.04.source.tar.gz
コンパイルします.
まずはcmake でコンパイルの準備をします.
cmake -B build -S root-6.26.04 -DCMAKE_CXX_STANDARD=17 -DCXX_STANDARD_STRING=17 -Droot7=ON -Dall=ON -DCMAKE_INSTALL_PREFIX=~/.local/root/6.26.04
このコマンドで直下に build
というディレクトリが作成されます.
-DCMAKE_INSTALL_PREFIX
の後は, 最終的にROOTがインストールされているディレクトリです. 自分だけが使うのであればこのまま, ~/.local/root/6.26.04
がおすすめです. 計算機サーバーにいる他のユーザーが使うのであれば, /opt/root/6.26.04
がおすすめです. この場合は cmake --install build
をする際に, 頭に sudo
をつけて, 管理者パスワードを入力する必要があります.
他のversionのROOTを入れる際には今のROOTを消さずに 6.26.04
の部分を変更して共存させると良いと思います.
実行すると最後に以下のような出力が出てきます. Enabled support for: … の部分で必要なものが入っているか確認してください. (よくわからなければそのままでOKです.) mzksの部分はあなたのユーザー名です.
-- Enabled support for: asimage builtin_afterimage builtin_clang builtin_cling builtin_cppzmq builtin_gl2ps builtin_llvm builtin_lz4 builtin_openui5 builtin_tbb builtin_unuran builtin_vdt builtin_veccore builtin_xrootd builtin_xxhash builtin_zeromq cefweb clad dataframe exceptions fftw3 fitsio fortran gdml gviz http imt mathmore mlp minuit2 mysql opengl qt5web r roofit roofit_multiprocess webgui root7 rpath runtime_cxxmodules shadowpw shared sqlite ssl tmva tmva-cpu tmva-rmva spectrum unuran vdt veccore x11 xml xrootd
-- Configuring done
-- Generating done
-- Build files have been written to: /home/mzks/root_build/test/build
ROOTをコンパイルします. それなりに時間がかかります. お持ちのコンピューターのコア数に応じて 8 の部分を適宜変更してください. コア数を増やしすぎると失敗するので, 失敗したら再度 cmake --build build
を実行してください. できていたところから始まります.
cmake --build build -j8
コンパイルに成功すれば,
Processing hsimple.C...
hsimple : Real Time = 0.13 seconds Cpu Time = 0.06 seconds
(TFile *) 0x334d760
[100%] Built target hsimple
最後にこのように出力されます.
ROOTを配置します.
cmake --install build
パスを通す
ターミナルで root
と入力した際にROOTが起動するためには, コンピューターがROOTの場所を知っている必要があります. コマンドの探索場所は, PATH
という環境変数に保存されています.
echo $PATH
のコマンドで, 現在の探索場所のリストを確認できます. 他にも, ライブラリをリンクする際に参照される環境変数などがあり, それら全てを手動で設定するのは面倒です. 都合のいいことに, 環境変数の設定スクリプトが準備されています. インストール先が異なる際は適宜読み替えてください. ~/.local/root/6.26.04/bin/thisroot.sh
がそれです.
source ~/.local/root/6.26.04/bin/thisroot.sh
を実行してください.
その後, root
と打って,
------------------------------------------------------------------
| Welcome to ROOT 6.26/04 https://root.cern |
| (c) 1995-2021, The ROOT Team; conception: R. Brun, F. Rademakers |
| Built for linuxx8664gcc on Jun 24 2022, 01:52:00 |
| From heads/latest-stable@2bc8ca5a |
| With c++ (GCC) 8.5.0 20210514 (Red Hat 8.5.0-10) |
| Try '.help', '.demo', '.license', '.credits', '.quit'/'.q' |
------------------------------------------------------------------
以上の画面が出てくるとインストール成功です.
この画面は .q
で終了できます.
毎回 source … と打つのは手間なので, ターミナルを立ち上げた際に自動で実行されるようにしましょう.
現在のシェルを echo $SHELL
で確認します.
bash の場合は, ~/.bashrc
に以下を追加します.
source ~/.local/root/6.26.04/bin/thisroot.sh
zsh の場合は, ~/.zshrc
に以下を追加します.
cd ~/.local/root/6.26.04/bin
source thisroot.sh
cd
Windows (WSL)
こちらをご参照ください.
https://github.com/ymapteam/root_lecture/blob/main/install/windows_wsl.md
WLS2を入れることと, 依存ライブラリの入れ方が変わります.
MacOS
こちらにおきました.
https://github.com/ymapteam/root_lecture/blob/main/install/mac.md
依存ライブラリの入れ方と, apple社のオレオレスタイルに従う必要があります.
CVMFS
CernVM-FS (CVMFS) を使います.
こちらは上記のようにソースコードを落としてきて, 自力でコンパイルする方式ではなく, 自分の環境に合わせてコンパイルされているROOTをダウンロードしてくる形式になります (実際はもっと賢いですが).
ネットワーク環境の良いところで作業してください.
CVMFSの公式サイト(https://cernvm.cern.ch/fs/) に従って, CVMFSをパッケージマネージャーで入れます.
その後, /etc/cvmfs/default.local
というファイルを編集 (なければ新しく作成) して, 以下のように記述してください.
CVMFS_REPOSITORIES=*.cern.ch, *.egi.eu, *.opensciencegrid.org, *.hsf.org
CVMFS_HTTP_PROXY=DIRECT
CVMFS_QUOTA_LIMIT=80000
CVMFS_QUOTA_LIMIT
は使うディスク容量の制限です (単位kB). システムの容量が少なくても20GB以上にしておいた方が無難かと思います.
ls /cvmfs/stf.cern.ch/lgc/app/releases/ROOT/6.26.04
などとすると様々なOS, gccでコンパイルされたrootが見えるはずです.
例えばUbuntu 22.04, gcc 11.02 を使っていれば,
source /cvmfs/stf.cern.ch/lgc/app/releases/ROOT/6.26.04/x86_64-ubuntu22-gcc112-opt/bin/thisroot.sh
としてPATHを通せばROOTが使えるようになるはずです.
必要があれば上記を参考にして, ターミナルを立ち上げた際に自動で実行されるようにしてください.
Virtual Machineの利用
最終手段として, ROOTが入ったVirtual Machineを入れる方法があります. とりあえずROOTを触り始めるのであれば, 最も簡単な方法かもしれません. Virtual machineとして, Geant4 VM をお勧めします. このVirtual machineは, 放射線シミュレーションツールキットであるGeant4のインストールされたものですが, オマケでROOTもインストールされています.
そのほかにも大体業界標準のツールなどが予め入っています. 講習会を主催する際には検討してもよいオプションだと思います.
Operating System Rocky Linux 8.5
Geant4 with all sets of data files
Boost
CLHEP
Firefox
GDB
Geany
Grace
Gnuplot
ImageMagick
Jupyter
LibreOffice
Python with Jupyter, Matplotlib, NumPy, SciPy and Sphinx
Qt5
ROOT
Eclipse IDE
Tex Live
Thunderbird
Valgrind
XercesC