私が学生だった頃は、素粒子反応シミュレーションプログラムのGEANT4も、描画ツールのROOTも最盛期?だったのか、結構、インストールの仕方とか、ツールそのものの使い方とか、自分流でログ残している人がいっぱいいて、英語のユーザーズガイドを頑張って読まなくても、日本語でいろいろ調べられたんだけどな…


今になってやろうとしたら、もう10年近く前の記事とか、それこそ、私がまだ研究室にいた頃に私が書いてアップしてた記事とか出てきて、今どきのことがまったくない…


もう、なんかパソコン、特にLinux系から離れてしまっていて、疎くなってて、すごく手間取ったわ…


まず、ROOT。

展開して置くだけで使える実行ファイルがくっついている版には、Ubuntuだと、Ubuntu14 with gcc4.8しか対応してなくて、、私は、最新のUbuntu16を入れちゃったから、これじゃ、使えないだろうな。とソースを自分でコンパイルして実行ファイルを作ることに。


今どきは、全部cmake使ってコンパイルしていくらしいよ(^^;;

cmakeがUbuntuに入っていなかったので、cmakeをインストールして、さっそくコンパイルを…

最新のROOTはバージョン6で、gcc、g++のバージョンは4.8じゃないといけないんですって?!
でも、Ubuntu16のgcc、g++のバージョンって5.4だった…


案の定、バージョン合ってないからコンパイルしてもエラー。

cling does not support the GCC 5 ABI yet.

ってメッセージが出る。


そしたら、ROOTの掲示板で、同じことに悩んで投稿している人を発見!
その人はUbuntu15に入れようとしていたけど。

投稿した本人は、どうやらUbuntu14をインストールし直して、gcc、g++のバージョン下げたみたいだけど…
私は、Ubuntuの再インストールなんて、面倒でやりたくなーい!

その投稿ページの真ん中辺りにコメントしている人が、Ubuntu15にROOT6をインストールした時のやり方を別ページにまとめたよ。って書いていて、その別ページのリンクを参考にやってみた。


update-alternativesを使って優先度をつけて、gccとg++を4.8と5の2種類のバージョンをインストールして、configオプションで手動でそのバージョン切り替えもできるらしい。



一応、インストール後、gcc、g++のバージョンを4.8に切り替えて、


cmakeのオプションに -DLINGFLAGS=-D_GLIBCXX_USE_CXX11_ABI=0を書き、

前の失敗したcmakeの時にできた生成ファイルをすべて消し、再びトライ!


おー!
やっと、できたー!

あとは、HOMEディレクトリにある.profileにthisroot.shの環境変数定義を毎度適用するように書いて完成!

これで、どの端末で、rootって打っても、ROOTが立ち上がるようになったぜ!



さてさて…

次は、使うかどうか分かんないけど、GEANT4のインストール。


GEANTを使うのにCLHEPという高エネルギー物理で使うC++の共通ライブラリっていうのが必要なので、それをインストールせねばならず…


昔はね、Configureファイルが付いていたのよ。

でも、最近はcmakeでコンパイルしていくことが一般的のようで、Configureがない…


cmakeファイルを作るのに、autoconf、automake、libtoolをインストールしてみたけど、いまいち使い方がわからず、cmakeファイルもできないじゃん!となり、古いバージョンのconfigureファイルが付いてるものをインストール。

まあ、少し古くても仕方あるまい…
できないんだし…(^^;;;


と、そしたら、なんと最新のGEANT4 10.02は、CLHEPのバージョンが2.3.1.0以上じゃないといけないらしい…

そこでエラー出て止まるから…


仕方なし、2.3.1.0をどうにかインストールしてみようと…

よく見たら、2.3.1.0バージョンのソースを展開したディレクトリにはcmakeファイルがすでにあったから、なんだー。それならできるんじゃない?


cmakeはソースのディレクトリとビルドするディレクトリが一緒だとダメみたい。

なので、ソースディレクトリと同じ階層にビルド用のディレクトリを作って、その中でコンパイル。

CMAKE_INSTALL_PREFIXをダウンロードして展開した2.3.1.0ディレクトリに。

それで、make、続けてmake installで無事、インストール成功。

あぁ、良かった…(^^;;


ついに、GEANT4のインストールだ。


でも、ここまで来たら、なんか、やること一緒じゃない?(^^;;


ソースを展開してできたgeant4.10.02.p02と同じ階層にビルドディレクトリを作成して、その中で作業。


私の環境(Ubuntu 16)では、X11、Xmuライブラリがないと、最初にエラー。

apt-getでlibx11-devをインストールしようとしたら、最新なので必要なし。で、libxmu-devを新たにインストール。
このパッケージ名って、全部小文字じゃないといけないのね。
そこ、小文字にしてなくて、最初、そんなのないっていうエラー出て悲しくなった…(苦笑)


GEANT4インストールのためのオプションは、CMAKE_INSTALL_PREFIXを指定。
GEANT4_INSTALL_DATAをONにして、数値データを自動でインストール。(手動でもただ展開して置くだけみたいだけど(^^;;;)
昔、GEANT4をインストールするときに、ここは、ONにしてた気がするからと、GEANT4_USE_OPENGL_X11とGEANT4_USE_RAYTRACER_X11をON。
あと、GEANT4_USE_SYSTEM_CLHEPをONにして、CLHEP_ROOT_DIRに、さっきインストールしたCLHEPの2.3.1.0ディレクトリ(私は、ここにCLHEPをインストールした)を指定。

で、cmake。
その後、make -j2 VERBOSE=1
並列にいくつ作業させるかって指定がjなんだけど、私のPCはコアは1つだけで…
デュアルコアを買ったつもりでいたけど、違ってた…^^;;;
ここで指定する数字はコア数×2が適切だって書いてあるサイトがあったので、それを信じて2にしておいた。
あとは、make installで、完成!

ま、GEANT4はインストールガイドを斜め読み(英語なので、さらによく分かってないけど…)して、なんとかなったわ。

なんだ。
確かにcmake簡単だな。
OS選ばないらしいね。Winでもcmakeをインストールすれば使えるらしい。ふーん。そうだったか。
いや、前になんかやってた気がするけど、この数年ですっかり忘れていて、そうだったっけ?ばかりだった…
トホホ。


これでインストールしたGEANTも使えるぞ。

一応、examplesの中のB1をコンパイルして実行してみた。
cmakeにはCMAKE_PREFIX_PATHをオプションにつけないといけない。
これ、いちいち書かずにコンパイルできるようにするには、もしかしたらGEANT本体のインストールのオプションに書いておかないといけなかったのかな…?

まあ、仕方ない。

面倒だけど、インストールし直すのも疲れた(笑)から、PREFIX_PATHは、毎回書くことにしますわ。


でも、無事、コンパイルできて、makeでできた実行ファイルを実行してみたら、なにやら、バババっと計算して、画像が表示されたわ。


大丈夫そう。

あぁ。良かったー。


これ、完成させるのに4日くらいかかりましたがな…
難儀やねぇ…苦笑


そんなこんなで、研究室でバイトできるのか心配だわー。


とりあえず、簡単な計算ならできる準備ができたから、何でも言ってくださいって、先生にはメールしておいたけど…


また、連絡するね。以降、返事来ないし…


ま、パッと行って帰ってこれる距離じゃないから、会って話せばすぐ済む話が、メールにすると、文字に書き起こすまとまった時間がないとできないからね…


進みませんわ…

9月になって始められればいい方かな…