TPythia8.h 를 포함한 ROOT 설치방법

2023. 8. 24. 10:40Root

혹시 ROOT는 설치했는데 TPythia8.h 를 쓰고싶어서 Pythia를 설치해야하는 상황이라면 

안타깝게도 순서가 잘못되었다는 것을 밝힌다.

 

ROOT가 먼저 설치되어있다면 후에 설치한 Pythia를 읽지못하기 때문에 ROOT를 삭제하고 Pythia를 먼저 설치한 다음 진행해야한다.

 

1. Pythia 설치하기 https://pythia.org/

2. ROOT 설치하기 https://root.cern/install/all_releases/

 

게다가 난 Pythia를 설치하면 TPythia8.h를 당연히 쓸 수 있을 줄 알았는데 애를 먹어서 ROOT를 설치하고 삭제하고를 너무 반복했다.. 

 

 

 

 

[현재상황 ]

  • Pythia8 설치완료. (example에서 main01 돌려봤고 잘 실행됨을 확인) 
  • TPythia8.h 가 동작하도록 하기위해 ROOT 재설치함

: root-6.28.04 버전으로 다운받아서 압축까지 풀었다. but make만 하려고하면 오류나오는 중. 

  • 계속 반복적으로 나오는 오류 내용 확인 

 

$ dmesg : 오류내용 확인 명령어

 

UtilTranslatePathList:2446
: wsl 내에서 파일 또는 디렉토리 경로를 windows 호스트 시스템의 경로로 변환하는 과정에서 발생한 문제를 나타냄. 

 

→ 이 부분을 자세히 알아보니 난 wsl 버전 1에서 우분투를 사용중인데 우분투의 경우 wsl2를 설치하는 것이 좋다고 함.

 

 

[결론] ★

  1. Pythia8 설치먼저 진행
  2. window 기반에서 wsl로 우분투를 실행시키는 상황이면 wsl버전은 2를 쓰는 것을 추천 (그래야 permission denied 오류가 안생김)
  3. ROOT 설치 진행

이 과정에서 build 할 때 명령어 이렇게 쳐주는거 중요

 

cmake .. -Dall=on

cmake -DCMAKE_INSTALL_PREFIX=~/root-6.28.04-install .




[Try]

<wsl2 기능 활성화하기>

Windows Terminal을 열고 관리자 권한으로 PowerShell을 실행

 

아래 명령어 실행 : WSL2 기능 활성화

dism.exe/online/enable-feature/featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

 

아래 명령어 실행 : 가상 머신 플랫폼 기능 활성화

dism.exe/online/enable-feature/featurename:VirtualMachinePlatform /all /norestart

 

 

WSL2를 기본버전을 설정

wsl --set-default-version 2

 

wsl –update 명령어해서 wsl 업데이트 해주기.

 

 

wsl -l -v 명령어 쳐서 VERSION확인하기

 

 

버전이 1이면 2로 바꿔줘야한다.

wsl –set-version Ubuntu 2 명령어 입력.

 

작업이 완료되면 다시 확인해보자.

wsl -l -v

 

 

이러고나면 귀찮아말고 무조건 컴퓨터 재부팅 해주기 . 

 

그러고 우분투 실행시켜서 code라고 치면 vscode 창이 열리는데 이때 다음과 같은 곳에 마우스 커서를 올려두면 (WSL2)라고 뜰텐데 그러면 잘 적용된거다.

 

wsl2로 우분투를 사용중이게 되었으니 이제 다시 root를 설치해보자.



 

설치한 루트디렉토리로 이동해서 upgrade랑 update 다 해주고 진행했다.



cd root-6.28.04

sudo apt-get upgrade

sudo apt-get update

 

mkdir root_build

cd root_build

 

cmake 이 명령어가 특히 중요

cmake .. -Dall=on

cmake -DCMAKE_INSTALL_PREFIX=~/root-6.28.04-install .

 

(저는 제 컴퓨터 사양에 맞게 j6로 했는데 컴이 좀 힘들어하면 j4로 돌리시는거 추천합니다)

make -j6

make install

 

이제 확인해보자 TPythia8.h가 include되는지 ㄱㄱ 

 

 

root 를 실행시켜서 #include “TPythia8.h” 입력하고 오류코드 안뜨면 성공인거

 

왐마 됐다!!! 와! ㅠㅠ