Geant4-11.1.0 설치 가이드 – Ubuntu

Geant4-11.1.0 설치 가이드 – Ubuntu

설치 상세: Ubuntu 22.04 LTS, Geant4-11.1.0, Qt5 연동, Multi-threading 활성화

2022년 12월 9일, Geant4 11.1 버전이 출시되었습니다.

Geant4 설치 방법 자체는 기존과 비슷하지만, Ubuntu 2004 LTS에서 2204로 넘어오면서 라이브러리 설치 과정에 다소 변경사항이 있는 것으로 보입니다.

혹시 WSL에서 설치하는 법을 찾는 분은, 이 글을 따라 WSL2 및 WSLg를 설치하신 뒤 리눅스에서의 Geant4 설치법을 따라가시면 됩니다.


설치 정보 요약

이 글의 설치 환경

  • 운영체제: Ubuntu 22.04 LTS
  • 인터넷 사용 가능
  • 관리자 권한 (sudo) 이용 가능

설치 조건

  • Geant4 11.1 버전
  • Multi-threading 기능 활성화
  • UI 및 가시화 기능 활용을 위해 Qt5, X11 OpenGL 라이브러리 연동하여 설치
  • Cross-section data 자동 다운로드(별도 준비 X)

설치 경로

  • /opt/geant4-v11.1.0

TL;DR

Geant4 관련 필수/선택 라이브러리 설치

  1. apt 패키지 매니저 최신화 및 pre-requisite 항목 설치

    1sudo apt update -y && sudo apt upgrade -y && sudo apt autoremove -y
    2sudo apt install -y build-essential cmake libexpat1-dev qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libxmu-dev
    
  2. Geant4 소스코드 다운로드 및 압축해제

    1cd /opt
    2sudo wget https://geant4-data.web.cern.ch/releases/geant4-v11.1.0.tar.gz
    3sudo tar -xf geant4-v11.1.0.tar.gz
    
  3. build, install 디렉토리 만든 뒤, cmake, make, make install 수행

    1cd geant4-v11.1.0
    2sudo mkdir build
    3sudo mkdir install
    4
    5cd build
    6sudo cmake .. -DCMAKE_INSTALL_PREFIX="/opt/geant4-v11.1.0/install" -DGEANT4_BUILD_MULTITHREADED=ON -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_QT=ON
    7sudo make -j `grep -c processor /proc/cpuinfo` && sudo make install
    
  4. 환경변수 세팅을 위해 ~/.bashrc에 내용 추가

    1echo "source /opt/geant4-v11.1.0/install/bin/geant4.sh" >> ~/.bashrc
    2source ~/.bashrc
    

Pre-requisite 소개

최신 Geant4 버전을 설치하기 위한 pre-requisite은 공식홈페이지의 설치 가이드에서 확인할 수 있습니다.

Linux 부분을 요약하면 다음과 같습니다.

  • (필수)Geant4 소스코드
  • (필수)C++17 standard 컴파일러 - GCC 8 이상
  • (필수)CMake 3.16 이상
  • (필수)Expat 2.0.1 이상(Linux에서는 별도 설치 필요)
  • (선택)UI 및 가시화를 위한 Qt5
    • Qt5 헤더/라이브러리
    • OpenGL 혹은 MesaGL 헤더/라이브러리

앞서 말한 준비물은 모두 Ubuntu에서 제공하는 패키지 관리자 apt를 통해 설치할 수 있습니다.

(RedHat 계열의 리눅스에서도 패키지 관리자 yum을 통해 유사한 명령어로 설치할 수 있습니다)

패키지 매니저 최신화

1sudo apt update -y && sudo apt upgrade -y && sudo apt autoremove -y

C++ 컴파일러 및 표준 라이브러리, 헤더 설치 (GCC 등)

1sudo apt install -y build-essential

CMake 설치

1sudo apt install -y cmake 

Expat 설치

1sudo apt install -y libexpat1-dev

Qt5 설치

1sudo apt install -y qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools

X11 OpenGL 설치

1sudo apt install -y libxmu-dev

Geant4 설치하기

이제 준비가 다 되었습니다. 이어서 Geant4를 설치해봅시다.

우리가 설치하고자 하는 경로는 /opt/geant4-v11.1.0입니다. 여기서 /opt/ 디렉토리는 관리자 권한이 있어야 수정할 수 있으므로, sudo 명령어가 필요합니다.

Geant4 소스코드 다운로드

해당 디렉토리로 이동한 뒤 Geant4 소스코드를 다운 받겠습니다.

1cd /opt
2sudo wget https://geant4-data.web.cern.ch/releases/geant4-v11.1.0.tar.gz 

geant4_download.png

소스코드 압축 해제

위 과정을 통해 geant4-v11.1.0.tar.gz라는 압축파일을 다운받으셨을 것입니다.

다음 명령어를 통해 해당 파일의 압축을 해제합니다.

1sudo tar -xf geant4-v11.1.0.tar.gz

geant4-v11.1.0라는 디렉토리가 생성되고 그 안에 압축이 풀리게 됩니다.

geant4_tarxf.png

build, install 디렉토리 생성

압축을 푼 뒤 해당 디렉토리에 들어갑니다. 여기에 buildinstall이라는 두 개의 디렉토리를 새로 만들어주겠습니다.

build는 컴파일 과정에서 생성되는 부산물을 보관하는 디렉토리이며, install은 Geant4를 설치한 결과물이 보관될 디렉토리입니다.

1cd geant4-v11.1.0
2sudo mkdir build
3sudo mkdir install

geant4_mkdir.png

CMake 수행

일단 build 디렉토리에 들어갑니다. 그 뒤에 다음 명령어를 입력하여 cmake 작업을 수행합니다. 오탈자 방지를 위해 복사-붙여넣기를 권장합니다.

1cd build
2
3sudo cmake .. -DCMAKE_INSTALL_PREFIX="/opt/geant4-v11.1.0/install" -DGEANT4_BUILD_MULTITHREADED=ON -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_QT=ON

위에서 -D 뒤에 이어지는 항목이 추가옵션에 해당하는 인자이며, 여기서 사용된 옵션의 의미는 다음과 같습니다.

  • CMAKE_INSTALL_PREFIX: Geant4가 설치될 폴더의 경로
  • GEANT4_BUILD_MULTITHREADED: Geant4에서 MultiThreading이 가능하도록 설치할 지에 대한 여부. 기본값은 OFF
  • GEANT4_INSTALL_DATA: Cross-section data를 설치과정에서 다운받을지 여부. 기본값은 OFF
  • GEANT4_USE_QT: Geant4에서 Qt5 기반의 GUI를 사용할 수 있도록 설치할 지에 대한 여부. 기본값은 OFF 다음 그림과 같이 Configuring doneGenerating done 문구를 확인하였다면 성공입니다. geant4_cmake

컴파일 및 설치작업

이제 컴파일 및 설치작업을 진행합니다.

1sudo make -j `grep -c processor /proc/cpuinfo` && sudo make install
make 명령어에서 -j 옵션을 주고 돌릴 때, 메모리가 부족한데 쓰레드 수가 너무 과하게 잡히면 cc1plus 관련 에러가 발생할 수 있습니다. -j 옵션에 적절한 숫자는 자신의 쓰레드 수 * 1.2 입니다. 여기서는 사용자 컴퓨터의 쓰레드 수를 가져오는 명령어인 grep -c processor /proc/cpuinfo를 이용하여 자동으로 숫자가 입력되게 하였습니다.

아래 그림과 같이 -- Installing: 문구가 주르륵 뜬다면 잘 설치가 된 것입니다.

geant4_make


환경변수 설정

Geant4 툴킷을 설치하고나면 마지막으로 할 일이 있습니다. 바로 환경변수를 설정하는 것입니다.

Geant4 사용을 위해 컴퓨터에게 알려줘야 하는 초기값들이 몇 가지 있습니다만, 이를 정리하여 한 번에 자동으로 설정이 되게끔하는 파일을 Geant4에서 제공하고 있습니다.

설치경로의 내부에 있는 bin/geant4.sh라는 파일입니다. (C-shell을 이용하시는 분은 bin/geant4.csh를 이용합니다)

실행을 위해서는 다음 명령어를 입력합니다. (source 명령어 뒤에 오는 경로는 Geant4를 설치한 경로에 따라 바뀔 수 있습니다)

1source /opt/geant4-v11.1.0/install/bin/geant4.sh

다만, 이 명령어는 실행한 이후 해당 shell이 종료될 때까지만 그 효과가 지속됩니다. 즉, 터미널을 새로 연다거나 하면 다시 환경변수 설정이 사라지게 되죠.

그래서 일반적으로는 터미널을 켤 때마다 자동으로 한 번 실행되는 파일인 ~/.bashrc 맨 밑에 위의 명령줄을 적어둡니다. vim이나 gedit 등을 이용하여 직접 입력하셔도 되고, 다음 명령줄을 이용하여 ~/.bashrc 파일 맨 밑에 해당 내용이 추가되도록 하셔도 됩니다.

1echo "source /opt/geant4-v11.1.0/install/bin/geant4.sh" >> ~/.bashrc

~/.bashrc에 추가된 내용을 새로고침하기 위해 다음 줄까지 실행하고 넘어가겠습니다.

1source ~/.bashrc

드디어 Geant4 설치가 끝났습니다!


제대로 설치되었는지 확인하기

환경변수 확인

정상적으로 설치가 완료되고 geant.sh 파일이 제대로 실행되었다면, GEANT4_DATA_DIRPATH 두 가지의 환경변수가 설정되어야 합니다.

다음 명령어를 통해 제대로 설정되었는지 출력하여 확인할 수 있습니다.

1env | grep Geant4

G4env

예제 실행해보기

예제코드 복사해오기

예제코드는 소스 코드를 압축해제한 디렉토리 안examples이라는 디렉토리에 있습니다.

우리의 경우에는 /opt/geant4-v11.1.0/examples이 되겠군요.

테스트를 위해 basic/B1 이라는 예제를 복사해오고, 복사해온 디렉토리 안으로 들어가봅시다.

1cd
2cp -r /opt/geant4-v11.1.0/examples/basic/B1 .
3cd B1

예제코드 실행하기 (터미널 상에서 실행)

예제 코드 B1에는 다음과 같은 파일 및 디렉토리들이 있을 것입니다.

b1example

이 글에서는 코드를 살펴보지는 않고, 그냥 실행만 하겠습니다.

우선 컴파일 결과가 담길 build 디렉토리를 만든 뒤, 그 안에서 빌드를 하기 위해 다음 명령어를 입력합니다.

1mkdir build
2cd build
3cmake ..
4make -j

다음 그림과 같이 많은 줄이 출력된 뒤, [100%] Built target exampleB1까지 나오면 성공입니다.

cmake_make

이어서 실행을 해봅니다.

1./exampleB1 run1.mac

다음 그림처럼 또 무언가 잔뜩 출력된 뒤, RunManagerKernel is deleted. Good bye :)가 출력되었다면 잘 실행된 것입니다.

exampleB1_runmac

예제코드 실행하기 (GUI 띄우기)

Geant4 설치 시 Qt5와 OpenGL 설치도 함께 진행했으므로, 여러분의 Ubuntu에 X window 관련 설정이 잘 되어있다면 다음 명령어로 GUI창도 띄워볼 수 있습니다.

1./exampleB1

잘 실행되었다면 다음과 같은 창이 나타날 것입니다.

exampleB1_gui

여기까지 되셨다면 설치와 테스트까지 성공적으로 하신 것입니다! 고생하셨습니다.

Reference