Macで何かする時のメモ

M1macについての備忘録です

M1のMacにGeant4をインストールする話

これはあくまで筆者の備忘録的な感じです。変なことが起きてないので書いていますが、万が一変なことが起きても責任は取れませんのでご容赦ください。
環境はこんな感じです
  • MacBookAir(M1,2020)
  • M1
  • macOS Monterey ver12.6
下準備
  • XCODE入れる
  • homebrew入れる
  • root,cmake,qt5入れる

さあ、やっていきましょう!

 

XCODE入れる

APP STOREから入れてください。16GBくらいと大きいですが、全部必要なものが入っています。

homebrew入れる

ぼくの前の記事を見てください。ターミナル開いて

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

 

をコピペしてエンター叩いたら勝手に入ってくれます。brew最高。

 

次にいろんなパッケージを入れていきます

これらは上で入れたXCODEやhomebrewが入っていないと正常にインストールできない、ていうかこれらがないとそもそもできないので上二つは完璧にしてください。

ターミナルで

brew install cmake
brew install qt5

としてください。wikiによるとcmakeはコンパイラに依存しないビルド自動化のためのフリーソフトウェア、Qt5はクロスプラットフォームアプリケーションらしいです。クロスプラットフォームとは仕様が全く異なる機械やOSの上でも同じ仕様ものを動かすことができる物らしいです。よくわかりませんが、偉大なる先人たちに敬意を込めながらエンターを押してインストールしてください。

 

最後に解析ソフトウェア的な物も入れましょう。

brew install xerces-c
brew install root

必ずxerces-cの方から先に入れてください。順番大事。なんでかはよく知らん。

 

PATHを通そう

PATHが通っていないとターミナル先生にブチギレられます。具体的に言うとコマンドを認識してくれなくなります。なので忘れずにやりましょう。まずは上で入れたQt5とrootがどこに入っているのかきちんと確認しにいきましょう。多分こんなめんどくさいことする人はいないとは思うので自分でできると言う人はすっ飛ばしてください。

homebrewで入れたパッケージはみんな同じ場所にあります。まずはターミナルで

cd /opt/homebrew/Cellar

とすると、brew installでインストールしたパッケージが並ぶセラーにいくことが出てきます。このフォルダはGUIで行こうとするとoptファイルが隠しフォルダ扱いなので、少し行きにくいです。ていうかhomebrew(自家醸造)でインストールしたものがCellar(蔵)というディレクトリにあるというのも中々芸が細かいですよね。

このディレクトリにいる状態でlsとターミナルに入力してエンター押したら、インストールしたパッケージの名前をしたディレクトリがずらりと出てくる事でしょう。ここでQtやrootなどの名前を確認したら

cd (Qtやrootなどの名前)

として、再度lsをかけるとver名のファイルが出てきます。このver名はメモっておきましょう。

このプロセスをQtとrootで2回してver名を確認してください。

 

今回の僕の環境では

  • qt@5のver 5.15.5_1
  • rootのver 6.26.04_1

でした。

ここまでできたら下の(ver名)のところにさっき確認した各々の verを入れてQt、rootでそれぞれ下の二つのコマンドを実行すればPATHが通ります。

export PKG_CONFIG_PATH=/opt/homebrew/Cellar/(qt@5 or root)/(ver名)/lib/pkgconfig/
export PATH=/opt/homebrew/Cellar/(qt@5 or root)/(ver名)/bin:$PATH

 

下準備完了!!!

 

Geant4を入れる

流れとしてはホームディレクトリにgithubに落ちているgeant4を複製して、そこからいろいろがんばろー、的な感じです。

 

まずはgitからホームディレクトリにgeant4を複製。ここからコマンド初心者のために口説い説明を書きまくっていきます。

cd

パスを指定しないでcdだけ打つとどこのディレクトリにいてもホームディレクトリに強制送還されます。

git clone https://gitlab.cern.ch/geant4/geant4.git

これは指定したリポジトリをそのまま複製して、今いるディレクトリ(ホームディレクトリ)にコピーするコマンドです。これを実行したらホームディレクトリにgeant4というディレクトリが生成されているはずです。

cd geant4

複製したディレクトリに移ります。

git checkout v11.0.0

ワークツリーを異なるブランチに切り替えます。

cd ..

一つ上のディレクトリ(ここではホームディレクトリ)に戻ります。

 

次にbuild環境を作ります。複製してきたgeant4フォルダでしても別に動きはするのですが、普通は別にbuild用の場所を作ってから実行します。

mkdir build

これでbuildというディレクトリを作ります。

cd build

buildに移動

 

次にbuild内でcmakeを実行します。cmakeコマンドを使うのですが、必ずどこのディレクトリ内のものをコンパイルしてどこに吐き出すのかを指定しないといけません。

cmake -S (複製してきたgeant4のパス)-B (さっき作ったbuildディレクトリのパス) -DCMAKE_INSTALL_PREFIX=~/geant4-v11.0.0-install -DCMAKE_BUILD_TYPE=RelWithDebInfo-DGEANT4_USE_GDML=ON -DGEANT4_BUILD_MULTITHREADED=ON -DXERCESC_ROOT_DIR=/opt/homebrew/Cellar/xerces-c/3.2.3 -DGEANT4_USE_QT=ON -DGEANT4_INSTALL_EXAMPLES=ON -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_SYSTEM_EXPAT=OFF -DGEANT4_BUILD_TLS_MODEL=auto ../geant4

 

を一行で入れてください。長いけど全部オプションなので、漏れがないように気をつけてください。もしこれで動かない、ここまでは動くけど後々動かないなどがあると、ここのオプション指定でミスっていることが多々あります。(xerces-cのPATHとかミスりやすい)これが通ったら、

cmake --build . --target install -- -j10

jの後の数字はお使いのPCのCPUコアを入力してください。わからなかったらテキトーに4とかで実行しても動くはずです。

 

M1macではデフォルトのシェルがzshなので、zshrcにパスを書いておきましょう。

ターミナルで

open ~/.zshrc

とするとエディタが開くので、そこに以下をコピペしてください。

 

##### Geant4 setup #####

#

#Qt5

#

export PKG_CONFIG_PATH=/opt/homebrew/Cellar/qt@5/5.15.5_1/lib/pkgconfig/

export PATH=/opt/homebrew/Cellar/qt@5/5.15.5_1/bin:$PATH

#

#ROOT

#

source /opt/homebrew/Cellar/root/6.26.04_1/bin/thisroot.sh

#

#Geant4

#

cd ~/geant4-v11.0.0-install/bin

source geant4.sh

export G4COMP=/Users/yourname/geant4-v11.0.0-install/lib/Geant4-11.0.0

export CMAKE_PREFIX_PATH=$G4COMP

alias comp='cmake -DGeant4_DIR=$G4COMP -DGEANT4_BUILD_MULTITHREADED=ON'

#

 

書いたら、Shift+Sで保存してください。ターミナルに戻って下のコマンドを打って追記したzshrcに更新しましょう。

source ~/.zshrc

 

これでひとまずインストール終わりです。お疲れ様でした。

 

 

動作確認

実際にgeant4が動くのかやってみましょう。grant4にはexampleなどのお試し環境が整えられているので、それを試してみましょう。

まずは実行するディレクトリを作ります。

mkdir myg4work
cd myg4work

 

~/geant4/examples/basic/B4 . に今必要な物が揃っているので、丸々コピーしてくる

cp -r ~/geant4/examples/basic/B4 .

exampleB4というサンプルを試してみることにしましょう。他にもexaplesディレクトリにあるものは全て同じ手順で試すことができるので暇な人はやってみてください。

 

mkdir B4-build 
cd B4-build

B4-buildを作成し、そこに移動。

cmake -DGeant4_DIR=~/geant4-v11.0.0-install/lib/Geant4-11.0.0 ../B4
make -j10

最初のcmakeのオプションがイカれてたらここでミスするか、下の実行でそんな名前のディレクトリ生成されてないよのエラーが出てきます

cd myg4work/B4-build/B4a

実行ファイルが無事に生成されているなら、下のコマンドを打つと、新しくウィンドウが出てきて、いい感じのやつが出てきます。

./exampleB4a 

あとは右下のコマンド入力欄にgeant4独自規則でコマンドを入力していきましょう。

いろいろこのコマンドで悪さできますが、ここでは簡単のためにマクロファイルを読み込ませるところまで解説します。

コマンド入力欄に

/control/execute run1.mac

と入力すると、実行ファイルと同じ階層に元から用意されてあるrun1.macというファイルが読み込まれます。このマクロファイルの中には色々なgeeant4コマンドが書かれていて、それらが全部自動的に実行されるようになっています。run1.macには何をどれだけの出力で何個どこに向けて射出するかみたいなコマンドが入っているので、これを好きなように弄れば自由にビーム発射を楽しむことができます。ただし、検出機などの構造はコンパイルの段階で確定しているので、その辺りをいじりたいなら、コンパイル前の段階のcmakeFileを頑張って書き換えてください。

 

 

 

他にも実行例はあるよというコーナー

dnaphysicsの例題の話

複製してきたgeant4フォルダの

geant4/examples/extended/medical/dna

に別のソースコードがあります。こいつも試してみましょう。

下のコマンドを順番に打ち込んでいってください。

 

cd
cp -R /Users/kosei/geant4/examples/extended/medical/dna
cd dnaphysics
mkdir buikd
cd build
cdmp ..
make -j10
cd dnaphysics
./dnaphysics 

でまた新ウィンドウが出てきて、いい感じにいい感じが出てくれば成功。

 

./dnaphysics dnaphysics.in ではしないけどデータはとられるのでそのままのコマンドライン上でrootを用いて解析することができる。

root plot.C

と打つと何やらいい感じにヒストグラムとか出てくる。もちろんQtのGUI画面でもrootで解析することはできます。それはまた別の機会に。

 

参考文献

……長い間!!! くそお世話になりました!!! この御恩は一生…!!! 忘れません!!!!

http://geant4-dna.in2p3.fr/styled-6/styled-12/index.html

https://qiita.com/oXyut/items/3962eff8f660856e7acd

M1 Macにhomebrewをインストール

M1 MacBook Air (2020)にhomebrewをインストール。

 

使用したMacのスペック

  • M1 MacBookAir(2020) 8GB 256GBSSD
  • MacOS Monterey ver 12.4

最初の記事で書いてたから、今後いらないのかも、ここの部分

 

そもそもhomebrewとは?

MacOSにおけるパッケージマネージャと書いてあるブログやHow toがたくさんあるが、よくわからない人はこれだけ言われてもよくわからないと思います。(ぼくもそう)

 

そもそもMacにはApp Storeにアプリケーションがごまんとあるわけですが、ネットの海にも死ぬほどフリーソフトは落ちているんです。App Store ではインストールはクリック一つ、アップデートもクリック一つ、アンインストールまでクリック一つなんですが、フリーソフトはそうはいきません。こういったフリーソフトは基本的に自分でファイルをダウンロードしてきて、解凍して、物によってはビルドなどが必要な物ものもあるので管理が非常に手間なわけです。

 

そこでネットの海に住み着く天才的有識者たちがよく使うようなソフトウェアや拡張機能をうまいことまとめて、クリック一つでターミナル上で管理できるようにしてくれました。それがhomebrewです。ターミナル上で動作する、フリーソフトウェア向けApp Storeと思ってくれていいかもしれません。

Homebrewの公式ページはこちら

brew.sh

ターミナルでの動作じゃん!何やってるか分かりにくい!イキんな!!!

このくらいでギャーギャー言ってるんじゃあないよ(でもこのくらいでも大学生でわからなくなる人いるんだよな...)

 

homebrewのインストール

GUIと言っても簡単です。

まずはターミナルを開きます。

Launchpad上の検索にターミナル(英語でterminalでもOK)と入力

 

そのあとhomebrewのページをブラウザで開く

もうここまできたら書いてる通りですが...

一応説明しておくとインストールの下に書いてある謎のおまじないをコピーしてターミナルに貼り付けます。そのまま貼り付けてOKです。コピーできない人のためにおまじないの右端の四角っぽいアイコンを押すと自動的におまじないコピーされた状態になります。そのままターミナルに貼り付け(command+V)して、エンターを押してください。

 

一応ここにも貼っておきます

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

これを実行すると、ターミナルがめちゃくちゃ動いて、途中でXCODEのコード(command line tool for Xcode)を少し追加でダウンロードするよ、とかを英語で聞かれるかもしれませんが、とりあえずY(yesの意味)押してエンターしておけば問題ないです。

 

ターミナルの動きが止まって、Installation Successと出たら終わりです。

 

最後に本当にインストールが成功しているのか確認しましょう。homebrewのバージョンを確認してみるために、下のコマンドをターミナルに打ち込んでください。

brew -v

すると

Homebrew [バージョン名]

と出るはずです。出なかったらなにかがおかしい。後ろになにかいるかも。

 

 

後書き

こんな初歩的で特に見やすいわけでもない喧嘩腰のインストール解説、今更誰が見るの?黒歴史行きやでこんなの