설치 상세: 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 설치법을 따라가시면 됩니다.
이 글의 설치 환경
sudo
) 이용 가능설치 조건
설치 경로
/opt/geant4-v11.1.0
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
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
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
환경변수 세팅을 위해 ~/.bashrc
에 내용 추가
1echo "source /opt/geant4-v11.1.0/install/bin/geant4.sh" >> ~/.bashrc
2source ~/.bashrc
최신 Geant4 버전을 설치하기 위한 pre-requisite은 공식홈페이지의 설치 가이드에서 확인할 수 있습니다.
Linux 부분을 요약하면 다음과 같습니다.
앞서 말한 준비물은 모두 Ubuntu에서 제공하는 패키지 관리자 apt
를 통해 설치할 수 있습니다.
(RedHat 계열의 리눅스에서도 패키지 관리자 yum
을 통해 유사한 명령어로 설치할 수 있습니다)
1sudo apt update -y && sudo apt upgrade -y && sudo apt autoremove -y
1sudo apt install -y build-essential
1sudo apt install -y cmake
1sudo apt install -y libexpat1-dev
1sudo apt install -y qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
1sudo apt install -y libxmu-dev
이제 준비가 다 되었습니다. 이어서 Geant4를 설치해봅시다.
우리가 설치하고자 하는 경로는 /opt/geant4-v11.1.0
입니다. 여기서 /opt/
디렉토리는 관리자 권한이 있어야 수정할 수 있으므로, sudo
명령어가 필요합니다.
해당 디렉토리로 이동한 뒤 Geant4 소스코드를 다운 받겠습니다.
1cd /opt
2sudo wget https://geant4-data.web.cern.ch/releases/geant4-v11.1.0.tar.gz
wget
명령어를 사용하지 않고, Geant4 다운로드 페이지에서 직접 받아서 옮겨오셔도 괜찮습니다.
위 과정을 통해 geant4-v11.1.0.tar.gz
라는 압축파일을 다운받으셨을 것입니다.
다음 명령어를 통해 해당 파일의 압축을 해제합니다.
1sudo tar -xf geant4-v11.1.0.tar.gz
geant4-v11.1.0
라는 디렉토리가 생성되고 그 안에 압축이 풀리게 됩니다.
압축을 푼 뒤 해당 디렉토리에 들어갑니다. 여기에 build
와 install
이라는 두 개의 디렉토리를 새로 만들어주겠습니다.
build
는 컴파일 과정에서 생성되는 부산물을 보관하는 디렉토리이며, install
은 Geant4를 설치한 결과물이 보관될 디렉토리입니다.
1cd geant4-v11.1.0
2sudo mkdir build
3sudo mkdir install
일단 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
뒤에 이어지는 항목이 추가옵션에 해당하는 인자이며, 여기서 사용된 옵션의 의미는 다음과 같습니다.
이제 컴파일 및 설치작업을 진행합니다.
1sudo make -j `grep -c processor /proc/cpuinfo` && sudo make install
make
명령어는 -j <쓰레드 수>
옵션을 주면, 여러 쓰레드를 동시에 이용하여 좀 더 빨리 설치됩니다.
make
명령어에서 -j
옵션을 주고 돌릴 때, 메모리가 부족한데 쓰레드 수가 너무 과하게 잡히면 cc1plus
관련 에러가 발생할 수 있습니다. -j
옵션에 적절한 숫자는 자신의 쓰레드 수 * 1.2 입니다. 여기서는 사용자 컴퓨터의 쓰레드 수를 가져오는 명령어인 grep -c processor /proc/cpuinfo
를 이용하여 자동으로 숫자가 입력되게 하였습니다.
아래 그림과 같이 -- Installing:
문구가 주르륵 뜬다면 잘 설치가 된 것입니다.
Geant4 툴킷을 설치하고나면 마지막으로 할 일이 있습니다. 바로 환경변수를 설정하는 것입니다.
Geant4 사용을 위해 컴퓨터에게 알려줘야 하는 초기값들이 몇 가지 있습니다만, 이를 정리하여 한 번에 자동으로 설정이 되게끔하는 파일을 Geant4에서 제공하고 있습니다.
설치경로의 내부에 있는 bin/geant4.sh
라는 파일입니다. (C-shell을 이용하시는 분은 bin/geant4.csh
를 이용합니다)
bin/geant4.sh
를 실행함으로써 해당 버전으로 동작하도록 설정할 수 있습니다.
실행을 위해서는 다음 명령어를 입력합니다. (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_DIR
과 PATH
두 가지의 환경변수가 설정되어야 합니다.
다음 명령어를 통해 제대로 설정되었는지 출력하여 확인할 수 있습니다.
1env | grep Geant4
예제코드는 소스 코드를 압축해제한 디렉토리 안에 examples
이라는 디렉토리에 있습니다.
우리의 경우에는 /opt/geant4-v11.1.0/examples
이 되겠군요.
테스트를 위해 basic/B1
이라는 예제를 복사해오고, 복사해온 디렉토리 안으로 들어가봅시다.
1cd
2cp -r /opt/geant4-v11.1.0/examples/basic/B1 .
3cd B1
예제 코드 B1에는 다음과 같은 파일 및 디렉토리들이 있을 것입니다.
이 글에서는 코드를 살펴보지는 않고, 그냥 실행만 하겠습니다.
우선 컴파일 결과가 담길 build
디렉토리를 만든 뒤, 그 안에서 빌드를 하기 위해 다음 명령어를 입력합니다.
1mkdir build
2cd build
3cmake ..
4make -j
다음 그림과 같이 많은 줄이 출력된 뒤, [100%] Built target exampleB1
까지 나오면 성공입니다.
이어서 실행을 해봅니다.
1./exampleB1 run1.mac
다음 그림처럼 또 무언가 잔뜩 출력된 뒤, RunManagerKernel is deleted. Good bye :)
가 출력되었다면 잘 실행된 것입니다.
Geant4 설치 시 Qt5와 OpenGL 설치도 함께 진행했으므로, 여러분의 Ubuntu에 X window 관련 설정이 잘 되어있다면 다음 명령어로 GUI창도 띄워볼 수 있습니다.
1./exampleB1
잘 실행되었다면 다음과 같은 창이 나타날 것입니다.
여기까지 되셨다면 설치와 테스트까지 성공적으로 하신 것입니다! 고생하셨습니다.