Skip to main content

Geant4-10.6.2 설치 가이드 – Ubuntu

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


설치 정보 요약​

설치 환경

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

설치 조건

  • Geant4 10.6 patch 02 버전
  • Multi-threading 기능 활성화
  • UI 및 가시화 기능 활용을 위해 Qt5, X11 OpenGL 라이브러리 연동하여 설치

설치 경로

  • /opt/geant4/10.6.p02
  • 여러 버전의 Geant4를 설치할 경우를 고려하여, /opt/geant4 하위에 버전별로 디렉토리를 만들고 그 하위에 설치 진행.

TL;DR​

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

  1. apt 패키지 매니저 최신화

    sudo apt update -y && sudo apt upgrade -y && sudo apt autoremove -y
  2. apt를 이용하여 다음 항목 설치

    • C++ 컴파일러 및 표준 라이브러리, 헤더 (Geant4 설치 시 필수 라이브러리)
    • CMake (Geant4 설치 시 필수 라이브러리)
    • Expat (Linux, macOS에서 Geant4 설치 시 필수 라이브러리)
    • Qt5, X11 OpenGL 라이브러리 설치 (Geant4 설치 시 선택 라이브러리. GUI 등 그래픽 기반 기능 사용에 필요)
    sudo apt install -y build-essential cmake libexpat1-dev qt5-default libxmu-dev

Geant4 설치​

  1. Geant4 툴킷을 설치할 디렉토리 생성

    sudo mkdir -p /opt/geant4/10.6.p02
  2. 1에서 생성한 디렉토리로 이동하여, Geant4 소스코드 다운로드 (소스코드 용량 약 40 MB)

    cd /opt/geant4/10.6.p02
    sudo wget http://geant4-data.web.cern.ch/geant4-data/releases/geant4.10.06.p02.tar.gz
  3. 2에서 다운받은 압축파일을 압축해제

    sudo tar -xf geant4.10.06.p02.tar.gz
  4. build라는 이름의 디렉토리를 만들고 안으로 이동

    sudo mkdir build
    cd build
  5. 컴파일 수행 (make 명령은 인터넷 속도 및 cpu 성능에 따라 수 분~수 십분 소요될 수 있음)

    • CMAKE_INSTALL_PREFIX(설치경로): /opt/geant4/10.6.p02
    • GEANT4_BUILD_MULTITHREADED(multi-threading 사용 여부): ON
    • GEANT4_INSTALL_DATA(크로스섹션 데이터 자동설치 여부): ON (데이터 총 용량 약 900 MB)
    • GEANT4_USE_OPENGL_X11(X11 OpenGL 라이브러리 연동 여부): ON
    • GEANT4_USE_QT(QT 라이브러리 연동 여부): ON
    sudo cmake ../geant4.10.06.p02 -DCMAKE_INSTALL_PREFIX=/opt/geant4/10.6.p02 -DGEANT4_BUILD_MULTITHREADED=ON -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_USE_QT=ON
    sudo make -j `grep -c processor /proc/cpuinfo`
    sudo make install
  6. 환경변수 세팅을 위해 ~/.bashrc에 내용 추가

    echo "source /opt/geant4/10.6.p02/bin/geant4.sh" >> ~/.bashrc

Prerequisite 설치​

인터넷이 안된다거나, 관리자 권한을 사용할 수 없다거나, Ubuntu가 아니라면 이야기가 좀 달라지겠지만...

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

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

warning

패키지 관리자를 사용하기 전에 최신화를 해주세요.

warning

본인이 서버 등을 관리하는 사람이라면, 최신화를 할 때 주의하세요. 이런 경우에는 전체 패키지를 최신화하기보다는 원하는 특정 패키지를 선별하여 최신화하기를 권장합니다.

패키지 매니저 최신화​

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

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

sudo apt install -y build-essential

CMake 설치​

sudo apt install -y cmake

Expat 설치​

sudo apt install -y libexpat1-dev

Qt5 설치​

sudo apt install -y qt5-default

X11 OpenGL 설치​

sudo apt install -y libxmu-dev

Geant4 설치하기​

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

우리가 설치하고자 하는 경로는 /opt/geant4/10.6.p02입니다. 앞서 말씀드린 것처럼, 여러 버전의 Geant4를 설치할 경우를 고려하여 /opt/geant4 하위에 버전명에 해당하는 디렉토리를 두어 세분화한 것입니다.

설치를 위한 디렉토리 생성​

우선 해당 디렉토리를 생성하기 위해 다음 명령어를 입력합니다. (/opt는 관리자 권한이 있어야 수정할 수 있음)

sudo mkdir -p /opt/geant4/10.6.p02

Geant4 소스코드 다운로드​

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

cd /opt/geant4/10.6.p02
sudo wget http://geant4-data.web.cern.ch/geant4-data/releases/geant4.10.06.p02.tar.gz
info

wget 명령어를 사용하지 않고, Geant4 다운로드 페이지에서 직접 받아서 옮겨오셔도 괜찮습니다.

소스코드 압축 해제​

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

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

sudo tar -xf geant4.10.06.p02.tar.gz

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

빌드를 위한 build 디렉토리 생성​

빌드를 수행하면 CMake와 관련된 잡다한 부산물이 생성됩니다. 관리의 용이성을 위해, 별도의 build라는 디렉토리를 만들고 이 안에서 컴파일을 수행하겠습니다.

sudo mkdir build
cd build

빌드 수행​

우리는 빌드를 진행할 때 다음과 같은 옵션을 설정할 것입니다.

  • CMAKE_INSTALL_PREFIX(설치경로): /opt/geant4/10.6.p02
  • GEANT4_BUILD_MULTITHREADED(multi-threading 사용 여부): ON
  • GEANT4_INSTALL_DATA(크로스섹션 데이터 자동설치 여부): ON (데이터 총 용량 약 900 MB)
  • GEANT4_USE_OPENGL_X11(X11 OpenGL 라이브러리 연동 여부): ON
  • GEANT4_USE_QT(QT 라이브러리 연동 여부): ON

그리고 우리의 소스 코드는 ../geant4.10.06.p02 디렉토리에 압축이 풀려져 있지요.

이에 따라 다음과 같이 명령줄을 입력합니다.

sudo cmake ../geant4.10.06.p02 -DCMAKE_INSTALL_PREFIX=/opt/geant4/10.6.p02 -DGEANT4_BUILD_MULTITHREADED=ON -DGEANT4_INSTALL_DATA=ON -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_USE_QT=ON

이 명령어를 입력하면, 많은 내용이 출력되며 작업이 진행됩니다. 혹시라도 오타가 나면 이 부분에서 에러가 발생합니다. 오타가 나지 않도록 주의하세요! 복사-붙여넣기 추천!

info

GEANT4_INSTALL_DATA 부분은 앞서 설명한 바와 같이, 크로스섹션 데이터를 자동으로 다운받을지에 대한 옵션입니다. 사용자에 따라 OFF로 하고 직접 다운로드 받아서 가져오는 경우도 있습니다.

이 글에서는 Geant4를 처음 설치하는 분들이 별도로 작업할 내용을 최소화하고자, 자동 다운로드 하는 방법으로 진행합니다.

다음과 같은 명령어와 함께 마무리되면 정상적으로 진행이 된 것입니다.

cmake_done

이어서 make 명령어로 빌드를 진행하고, make install로 설치를 마무리합니다.

sudo make
sudo make install
info

make 명령어는 -j <쓰레드 수> 옵션을 주면, 여러 쓰레드를 동시에 이용하여 좀 더 빨리 설치됩니다.

warning

make 명령어에서 -j 옵션을 주고 돌릴 때, 메모리가 부족한데 쓰레드 수가 너무 과하게 잡히면 cc1plus 관련 에러가 발생할 수 있습니다. -j 옵션에 적절한 숫자는 자신의 쓰레드 수 * 1.2 입니다.


환경변수 설정​

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

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

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

info

Geant4가 여러 버전으로 설치되어 있는 경우, 원하는 버전의 bin/geant4.sh를 실행함으로써 해당 버전으로 동작하도록 설정할 수 있습니다.

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

source /opt/geant4/10.6.p02/bin/geant4.sh

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

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

echo "source /opt/geant4/10.6.p02/bin/geant4.sh" >> ~/.bashrc

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

source ~/.bashrc

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


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

환경변수 확인​

정상적으로 설치가 완료되고 geant.sh 파일이 제대로 실행되었다면, G4...와 같은 형태의 환경변수가 크로스섹션 데이터를 담은 경로를 가리키고 있어야 합니다.

다음 명령어를 통해 제대로 그 경로가 출력되는지 확인할 수 있습니다.

env | grep G4

G4env

예제 실행해보기​

예제코드 복사해오기​

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

우리의 경우에는 /opt/geant4/10.6.p02/geant4.10.06.p02/examples이 되겠군요.

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

cp -r /opt/geant4/10.6.p02/geant4.10.06.p02/examples/basic/B1 .
cd B1

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

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

b1example

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

우선 빌드를 하기 위해 다음 명령어를 입력합니다.

cmake .
make -f Makefile

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

cmake_make

이어서 실행을 해봅니다.

./exampleB1 run1.mac

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

exampleB1_runmac

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

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

./exampleB1

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

exampleB1_gui

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

Reference​