설치 상세: Ubuntu 20.04 LTS, Geant4-10.6.2, Qt5 연동, Multi-threading 활성화
설치 환경
sudo
) 이용 가능설치 조건
설치 경로
/opt/geant4/10.6.p02
/opt/geant4
하위에 버전별로 디렉토리를 만들고 그 하위에 설치 진행.apt
패키지 매니저 최신화
1sudo apt update -y && sudo apt upgrade -y && sudo apt autoremove -y
apt
를 이용하여 다음 항목 설치
1sudo apt install -y build-essential cmake libexpat1-dev qt5-default libxmu-dev
Geant4 툴킷을 설치할 디렉토리 생성
1sudo mkdir -p /opt/geant4/10.6.p02
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
2에서 다운받은 압축파일을 압축해제
1sudo tar -xf geant4.10.06.p02.tar.gz
build
라는 이름의 디렉토리를 만들고 안으로 이동
1sudo mkdir build
2cd build
컴파일 수행 (make
명령은 인터넷 속도 및 cpu 성능에 따라 수 분~수 십분 소요될 수 있음)
CMAKE_INSTALL_PREFIX
(설치경로): /opt/geant4/10.6.p02
GEANT4_BUILD_MULTITHREADED
(multi-threading 사용 여부): ONGEANT4_INSTALL_DATA
(크로스섹션 데이터 자동설치 여부): ON (데이터 총 용량 약 900 MB)GEANT4_USE_OPENGL_X11
(X11 OpenGL 라이브러리 연동 여부): ONGEANT4_USE_QT
(QT 라이브러리 연동 여부): ON1sudo 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
환경변수 세팅을 위해 ~/.bashrc
에 내용 추가
1echo "source /opt/geant4/10.6.p02/bin/geant4.sh" >> ~/.bashrc
인터넷이 안된다거나, 관리자 권한을 사용할 수 없다거나, Ubuntu가 아니라면 이야기가 좀 달라지겠지만…
앞서 말한 5가지 준비물은 모두 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 qt5-default
1sudo apt install -y libxmu-dev
이제 준비가 다 되었습니다. 이어서 Geant4를 설치해봅시다.
우리가 설치하고자 하는 경로는 /opt/geant4/10.6.p02
입니다. 앞서 말씀드린 것처럼, 여러 버전의 Geant4를 설치할 경우를 고려하여 /opt/geant4
하위에 버전명에 해당하는 디렉토리를 두어 세분화한 것입니다.
우선 해당 디렉토리를 생성하기 위해 다음 명령어를 입력합니다. (/opt
는 관리자 권한이 있어야 수정할 수 있음)
1sudo mkdir -p /opt/geant4/10.6.p02
이어서, 해당 디렉토리로 이동한 뒤 Geant4 소스코드를 다운 받겠습니다.
1cd /opt/geant4/10.6.p02
2sudo wget http://geant4-data.web.cern.ch/geant4-data/releases/geant4.10.06.p02.tar.gz
wget
명령어를 사용하지 않고, Geant4 다운로드 페이지에서 직접 받아서 옮겨오셔도 괜찮습니다.위 과정을 통해 geant4.10.06.p02.tar.gz
라는 압축파일을 다운받으셨을 것입니다.
다음 명령어를 통해 해당 파일의 압축을 해제합니다.
1sudo tar -xf geant4.10.06.p02.tar.gz
geant4.10.06.p02
라는 디렉토리가 생성되고 그 안에 압축이 풀리게 됩니다.
빌드를 수행하면 CMake와 관련된 잡다한 부산물이 생성됩니다. 관리의 용이성을 위해, 별도의 build
라는 디렉토리를 만들고 이 안에서 컴파일을 수행하겠습니다.
1sudo mkdir build
2cd build
우리는 빌드를 진행할 때 다음과 같은 옵션을 설정할 것입니다.
CMAKE_INSTALL_PREFIX
(설치경로): /opt/geant4/10.6.p02
GEANT4_BUILD_MULTITHREADED
(multi-threading 사용 여부): ONGEANT4_INSTALL_DATA
(크로스섹션 데이터 자동설치 여부): ON (데이터 총 용량 약 900 MB)GEANT4_USE_OPENGL_X11
(X11 OpenGL 라이브러리 연동 여부): ONGEANT4_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
이 명령어를 입력하면, 많은 내용이 출력되며 작업이 진행됩니다. 혹시라도 오타가 나면 이 부분에서 에러가 발생합니다. 오타가 나지 않도록 주의하세요! 복사-붙여넣기 추천!
GEANT4_INSTALL_DATA
부분은 앞서 설명한 바와 같이, 크로스섹션 데이터를 자동으로 다운받을지에 대한 옵션입니다. 사용자에 따라 OFF
로 하고 직접 다운로드 받아서 가져오는 경우도 있습니다.
이 글에서는 Geant4를 처음 설치하는 분들이 별도로 작업할 내용을 최소화하고자, 자동 다운로드 하는 방법으로 진행합니다.
다음과 같은 명령어와 함께 마무리되면 정상적으로 진행이 된 것입니다.
이어서 make
명령어로 빌드를 진행하고, make install
로 설치를 마무리합니다.
1sudo make
2sudo make install
make
명령어는 -j <쓰레드 수>
옵션을 주면, 여러 쓰레드를 동시에 이용하여 좀 더 빨리 설치됩니다.make
명령어에서 -j
옵션을 주고 돌릴 때, 메모리가 부족한데 쓰레드 수가 너무 과하게 잡히면 cc1plus
관련 에러가 발생할 수 있습니다. -j
옵션에 적절한 숫자는 자신의 쓰레드 수 * 1.2 입니다.Geant4 툴킷을 설치하고나면 마지막으로 할 일이 있습니다. 바로 환경변수를 설정하는 것입니다.
Geant4 사용을 위해 컴퓨터에게 알려줘야 하는 초기값들이 몇 가지 있습니다만, 이를 정리하여 한 번에 자동으로 설정이 되게끔하는 파일을 Geant4에서 제공하고 있습니다.
설치경로의 내부에 bin/geant4.sh
라는 파일입니다. (C-shell을 이용하시는 분은 bin/geant4.csh
를 이용합니다)
bin/geant4.sh
를 실행함으로써 해당 버전으로 동작하도록 설정할 수 있습니다.실행을 위해서는 다음 명령어를 입력합니다. (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
예제코드는 소스 코드를 압축해제한 디렉토리 안에 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에는 다음과 같은 파일 및 디렉토리들이 있을 것입니다.
이 글에서는 코드를 살펴보지는 않고, 그냥 실행만 하겠습니다.
우선 빌드를 하기 위해 다음 명령어를 입력합니다.
1cmake .
2make -f Makefile
다음 그림과 같이 많은 줄이 출력된 뒤, [100%] Built target exampleB1
까지 나오면 성공입니다.
이어서 실행을 해봅니다.
1./exampleB1 run1.mac
다음 그림처럼 또 무언가 잔뜩 출력된 뒤, RunManagerKernel is deleted. Good bye :)
가 출력되었다면 잘 실행된 것입니다.
Geant4 설치 시 Qt5와 OpenGL 설치도 함께 진행했으므로, 여러분의 우분투에 X window 관련 설정이 잘 되어있다면 다음 명령어로 GUI창도 띄워볼 수 있습니다.
1./exampleB1
잘 실행되었다면 다음과 같은 창이 나타날 것입니다.
여기까지 되셨다면 설치와 테스트까지 성공적으로 하신 것입니다! 고생하셨습니다.