Geant4-10.6.2 설치 가이드 – Ubuntu

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 패키지 매니저 최신화

    1sudo 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 등 그래픽 기반 기능 사용에 필요)
    1sudo apt install -y build-essential cmake libexpat1-dev qt5-default libxmu-dev
    

Geant4 설치

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

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

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

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

    1sudo mkdir build
    2cd 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
    1sudo 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
    2sudo make -j `grep -c processor /proc/cpuinfo`
    3sudo make install
    
  6. 환경변수 세팅을 위해 ~/.bashrc에 내용 추가

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

Prerequisite 설치

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

앞서 말한 5가지 준비물은 모두 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 qt5-default

X11 OpenGL 설치

1sudo apt install -y libxmu-dev

Geant4 설치하기

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

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

설치를 위한 디렉토리 생성

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

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

Geant4 소스코드 다운로드

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

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

소스코드 압축 해제

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

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

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

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

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

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

1sudo mkdir build
2cd 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 디렉토리에 압축이 풀려져 있지요.

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

1sudo 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

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

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

cmake_done

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

1sudo make
2sudo make install

환경변수 설정

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

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

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

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

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

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

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

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

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

1source ~/.bashrc

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


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

환경변수 확인

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

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

1env | grep G4

G4env

예제 실행해보기

예제코드 복사해오기

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

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

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

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

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

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

b1example

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

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

1cmake .
2make -f Makefile

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

cmake_make

이어서 실행을 해봅니다.

1./exampleB1 run1.mac

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

exampleB1_runmac

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

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

1./exampleB1

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

exampleB1_gui

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

Reference