Mac

Mac M1 환경에서 ncl 실행 (M2 에러 해결 포함)

이석사 중 2024. 4. 28. 14:15
728x90

오늘은 한참 동안이나 시도했었던 Mac M1에서 ncl을 설치하고 실행하는 법입니다

 

일단은 해결하긴 했는데 혹시 중간에 에러가 발생하거나 하면 수정하도록 하겠습니다!


먼저 제게 발생한 에러입니다

(lsh) lsh@lsh lib % ncl
dyld[50561]: Library not loaded: /usr/local/lib/libgfortran.4.dylib
  Referenced from: <6E838C70-A577-3DA9-AFA9-EF75ED781A06> /opt/homebrew/ncl-6.6.2/bin/ncl
  Reason: tried: '/usr/local/lib/libgfortran.4.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/usr/local/lib/libgfortran.4.dylib' (no such file), '/usr/local/lib/libgfortran.4.dylib' (no such file), '/opt/homebrew/Cellar/gcc/13.2.0/lib/gcc/current/libgfortran.5.dylib/libgfortran.4.dylib' (errno=20)
zsh: abort      ncl

 

libgfortran.4.dylib 파일이 존재하지 않아서 발생했던 에러입니다

 

해당 에러는 설치한 gcc의 버전이 높아서 생깁니다

 

하지만 gcc의 구버전을 brew로 설치하기에는 접근이 쉽지 않기 때문에 수동 설치로 해결을 했습니다


ncl 설치를 위해서는 같은 카테고리에 있는 homebrew가 필요합니다

brew install --cask ncar-ncl

 

위 명령어를 통해서 ncl을 먼저 설치해줍니다

 

https://hpc.sourceforge.net/

 

High Performance Computing for Mac OS X

If you'd like to use your Apple Mac with OS X for some numerical computation, this site could be useful to you. Most of these packages have been compiled/tested on several version of OS X and XCode Tools. Feel free to contact me with questions or problems!

hpc.sourceforge.net

 

그런 다음 위 경로로 들어가면 이런 화면이 나옵니다

 

여기서 gcc-7.3-bin.tar.gz를 다운로드 받아주시면 됩니다

 

7.3 버전을 받는 이유는 필요한 파일이 libgfortran.4.dylib인데 8.1 버전부터는 libgfortran.5.dylib를 가지고 있기 때문에

 

반드시 7.3 버전을 사용해야 합니다

tar -xvf gcc-7.3-bin.tar.gz

 

그런 다음 아래 명령어를 샤용해서 다운로드 받은 파일을 압축해제하면 usr이라는 폴더가 만들어집니다

 

해당 폴더에는 local이라는 폴더가 존재하고 local 폴더 안에는 아래와 같이 구성되어 있습니다

 

오류는 libgfortran.4.dylib에 대해서만 발생했지만 혹시 모르기 때문에 해당 디렉토리에 존재하는 모든 파일을

 

에러에 나와있는 경로인 /usr/local/ 로 복사해줍니다

cp -r * /usr/local/

 

그런 다음 ncl 설치 경로를 지정해주어야 합니다

 

~/.zshrc에 NCARG_ROOT라는 변수를 선언해주면 됩니다

 

(추가)

터미널을 커스텀하려고 iterm2를 사용하니 ~/.zshrc가 날아가버렸습니다

 

이 상황에서는 NCARG_ROOT만 선언한다고 해서 해결이 되지 않았습니다

 

아래 환경 변수들을 통째로 복사해서 ~/.zshrc에 추가하시면 될 것 같습니다

export NCARG_ROOT="/opt/homebrew/ncl-6.6.2"
export PATH="${NCARG_ROOT}/bin:${PATH}"

export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/lib/libgfortran.4.dylib:$DYLD_FALLBACK_LIBRARY_PAT

 

이걸 해주지 않으면 아래와 같은 에러가 발생합니다

warning:Unable to Get System Resource File Name?
warning:Unable to load System Resource File (null)
fatal:GetSysAppDir:Unable to get a default value for the system App Resource directory
# NCL 경로가 아예 설정되지 않은 것

warning:Unable to load System Resource File /usr/local/lib/ncarg/sysresfile
warning:WorkstationClassInitialize:Unable to access rgb color database - 
        named colors unsupported:[errno=2]
warning:["Palette.c":1533]:NhlLoadColormapFiles: Invalid colormap directory:
        /usr/local/lib/ncarg/colormaps
# NCL 경로가 제대로 설정되지 않은 것

 

반드시 설치 경로를 설정해주어야 합니다

 

하지만 이렇게 설정을 모두 하고 NCL을 실행하면 libgfortran.4.dylib를 

 

개발자가 확인되지 않았기 때문에 실행할 수 없다고 합니다

 

 

( 이 방법이 해결될 줄 몰라서 캡쳐를 못했네요 ㅠㅠ)

 

비슷한 메세지가 뜨면 설정 > 개인정보 보호 및 보안 탭에서 맨 아래쪽으로 가시면

 

응용 프로그램 허용과 액세서리 연결 허용 사이에 "그래도 허용" 메세지가 뜰 겁니다

 

그걸 눌러주시면 문제 없이 실행이 됩니다

 

추가로 4개의 파일 정도가 더 비슷하게 나올건데 다 같은 방법으로 해주시면 됩니다

 

제가 보여드릴 수가 없어서 이 부분은 설명은 다른 블로그를 찾아보시는 것도 좋을 것 같습니다


이렇게 모두 설정을 마치고 ncl을 실행하면 잘 되는 모습입니다

(base) lsh@lsh ~ % ncl
 Copyright (C) 1995-2019 - All Rights Reserved
 University Corporation for Atmospheric Research
 NCAR Command Language Version 6.6.2
 The use of this software is governed by a License Agreement.
 See http://www.ncl.ucar.edu/ for more details.
ncl 0>

 


맥북을 산 이후로부터 계속 ncl 때문에 골 머리를 앓고 있었는데 해결이 되서 다행인 것 같습니다

 

어디서는 conda를 이용해서 해결한 것도 있었는데 저는 근본적인 문제를 해결해서 다행인 것 같습니다

 

추가로 gcc 버전을 낮추면 fortran에는 문제가 없나 하실 텐데

 

fortran도 문제 없이 잘 됩니다


Mac M2에서 확인된 문제가 있어서 글에 추가합니다

 

M2에서 해당 방식대로 전부 진행하고 실행을 하면 

zsh: bad CPU type in executable : ncl

 

이런 에러가 발생합니다

 

이러한 경우 아래 명령어를 터미널에 입력하고 실행하시면 됩니다

sofwareupdate --install-rosetta

오늘도 긴 글 읽어주셔서 감사합니다!

728x90

'Mac' 카테고리의 다른 글

Mac : Too many open files 에러 해결  (0) 2023.12.09
M1 Mac WRF_Python 라이브러리 설치하기  (2) 2023.09.11
M1 Mac에 basemap 설치하기  (2) 2023.09.11
Homebrew 설치와 사용  (0) 2023.09.10
내가 맥북 에어 M1을 산 이유  (0) 2023.09.10