ROOT 6.24.00 を Ubuntu にインストール
CERNが提供しているROOTの6.24.00(2021.6.3現在の最新版)をインストールしたので備忘録。入れたてのUbuntuにROOTを仕込んだ。なお、現状私はコマンド操作etcに明るくないので無駄なことをしているかも。
エラーメッセージの記録を取っていないのでかなり雑 & 本当に必要だったのかわからない操作が多々ある...
目標
Ubuntu20.04 に ROOT/PyROOT を Python3 と Python2 の双方でimportできるようにインストールする。
環境
・VirtualBox 6.1 を利用した Ubuntu20.04
- メモリ割り当て 2GB
- ストレージ 固定 25GB(利用可能19GB)
・PCは Windows 10 / Intel Core i7 / メモリ8GB
0.はじめに
0.1.updateとupgrade
$ sudo apt update
$ sudo apt dist-upgrade
・とりあえずこれはやる。
0.2.ビルドツールを入れる
$ sudo apt install build-essential
・もう入っているなら不要。
1.準備
1.1.Pythonを確認
$ Python3 --version
$ Python2 --version
・バージョンを確認。
$ which Python3
$ which Python2
・パスを確認。3.4.CMakeで環境チェック・build準備 で使うのでメモ。
▶ Ubuntu20.04の場合、デフォルトではPython3のみだったので $ sudo apt install Python2
を実行してPython2をインストールした。
1.2.CMakeをインストール
$ sudo apt install cmake
$ cmake --version
・バージョンが 3.14 以降であることを確認。
・CMakeは次の 2.1.Required Package を入れる のところでインストール可能だが、それだとうまくいかなかったので別途手動でインストールした。
2.パッケージを入れる
ROOTのHPに何が必要か書いてあるのでそれを参照。
2.1.Required packagesを入れる
$ sudo apt-get install dpkg-dev g++ gcc binutils libx11-dev libxpm-dev libxft-dev libxext-dev libssl-dev
・CMakeとPythonは別にインストールしたので含めなかったけど、たぶん「もう手動で入ってるから飛ばすね」ってなるだけだから含めても問題ないと思う。
2.2.Most common optional packagesを入れる
$ sudo apt-get install gfortran libpcre3-dev xlibmesa-glu-dev libglew1.5-dev libftgl-dev libmysqlclient-dev libfftw3-dev libcfitsio-dev graphviz-dev libavahi-compat-libdnssd-dev libldap2-dev python3-dev python2-dev libxml2-dev libkrb5-dev libgsl0-dev
・libqt4-dev
は見つかりませんと警告されたので入れなかった(理由はわからない)。
・python-dev
ではなく python3-dev
と python2-dev
を指定。
3.ROOTをインストール
ROOTをインストールしていく。ここからはROOTのHPに説明がある通りなので、それに即してコマンドを入力した。
3.1.gitを設定
$ sudo apt install git
・まずgitを入れる。これは案内がないので忘れずに。
3.2.ソースコードをもらう
$ git clone --branch latest-stable https://github.com/root-project/root.git root_src
・HP内には
$ git clone --branch v6-2*-**-patches https://github.com/root-project/root.git root_src
とバージョンを指定する例もあったけれど、これだと最新の 6.24.00 はエラーになってしまった。
・latest-stable
でインストールするとちゃんと最新の 6.24.00 になっていたので、最新を入れたければ latest-stable
がいいのかもしれない。
3.3.ディレクトリ作成・移動
$ mkdir root_build root_install
$ cd root_build
・ソースディレクトリ(ソースコードを clone
したときにできたディレクトリ root_src
)ではbuildできないらしい。移動を忘れずに。
3.4.CMakeで環境チェック・build準備
$ sudo cmake -DCMAKE_INSTALL_PREFIX=/home/*******/root_install -DPython3_EXECUTABLE=/usr/bin/python3.8 -DPython2_EXECUTABLE=/usr/bin/python2.7 /home/*******/root_src
・*******
はユーザーネーム
・root_install
python3.8
python2.7
root_src
いずれも絶対パスで明記。なお、python3.8
python2.7
の場所は 1.1.Pythonを確認 でチェック済み。
・最初はオプション無しの
$ sudo cmake -DCMAKE_INSTALL_PREFIX=/home/*******/root_install /home/*******/root_src
を打ち込んでインストールしたが、動作確認したらPython2系にしか対応していなかったのでオプションをつけて入れ直しした。
・ sudo
は1回目のインストール時には不要だったが、2回目のインストールではファイルを読み込めないとのエラーが出たので追加(理由はわからない)。
・ちなみにこのプロセスはbuildではなく、buildできる環境かチェックして必要なファイル等を用意してくれるらしい。
3.5.buildする
$ sudo cmake --build . --target install
・これでbuildが開始される。左端に[ 0%]
とか出てきたらOK。
・$ sudo cmake --build . -- -j8
と打てば8スレッドで実行してくれる。(スレッド数はPCを確認)
3.6.環境設定
$ source /home/*******/root_install/bin/thisroot.sh
・ちゃんと起動できるように設定しているらしい。
4.動作確認
4.1.通常の起動
$ root
4.2.Python3でimport
$ python3.8
>>>import ROOT
4.3.Python2でimport
$ python2.7
>>>import ROOT
参考サイト
おまけ:CMake最新版のインストール
結局必要なかったが、いろいろ迷走している段階でCMakeの最新版をインストールしたのでその流れをメモ。
1.libssl-devを入れる
$ sudo apt install libssl-dev
・これ入れないと$ ./bootstrap
で Could NOT find OpenSSL
のエラーが出る。
2.ソースコードをもらって展開
$ wget https://cmake.org/files/v3.20/cmake-3.20.3.tar.gz
$ tar xvf cmake-3.20.3.tar.gz
・ $ tar xvf
で展開 → cmake-3.20.3
ディレクトリができるってことらしい。
・2021/6/3現在 3.20.3 が最新だったのでそれを入れた。
3.インストール
$ cd cmake-3.20.3
$ ./bootstrap && make && sudo make install
・cmake-3.20.3
に移動してから bootstrap
と install
4.PATHを通す
$ export PATH="/usr/bin:$PATH"
・指定する場所が分からない場合は $ cmake --version
と打って $ bash:
の後ろを確認する。例えば、$ bash: /usr/bin/cmake: そのようなファイルやディレクトリはありません
と表示された場合は /usr/bin/
を指定すればよい。