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

f:id:T0MAT0_PHYS:20210605172850j:plain

こうなればOK
4.2.Python3でimport

$ python3.8

>>>import ROOT

f:id:T0MAT0_PHYS:20210605172921j:plain

import したあとに >>> のみが表示されればOK
4.3.Python2でimport

$ python2.7

>>>import ROOT

f:id:T0MAT0_PHYS:20210605172944j:plain

import した後に >>> のみが表示されればOK

 

参考サイト

root.cern

blog.123abcsoft.com

 

 

おまけ:CMake最新版のインストール

結局必要なかったが、いろいろ迷走している段階でCMakeの最新版をインストールしたのでその流れをメモ。

1.libssl-devを入れる

$ sudo apt install libssl-dev

 ・これ入れないと$ ./bootstrapCould 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/ を指定すればよい。

 

 参考サイト

qiita.com

qiita.com