npm 실행시 오류 발생 ( dyid : ... /usr/local/opt/icu4c/lib/libicui18n.68.dylib ...)
Next.js 프로젝트를 실행하려고 npm을 사용하려고 하니 다음과 같은 에러가 발생했다.
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.68.dylib
Referenced from: /usr/local/bin/node
Reason: image not found
[1] 83641 abort npm -v
npm, icu4c 버전 충돌
이게 뭔가하고 터미널에서 검색해보니 69.1버전이 깔려있었다. 에러로그에는 68버전을 찾는 것을 보니 다운그레이드를 해주면 될 것 같다.
- $ brew list icu4c
ICU ?
ICU(nternational Components for Unicode)는소프트웨어 응용 프로그램에 대한 유니코드 및 세계화 지원을 제공하는 성숙하고 널리 사용되는 C/C++ 및 Java 라이브러리이다. ICU는 광범위하게 이식 가능하며 모든 플랫폼과 C/C++ 및 Java 소프트웨어 간에 동일한 결과를 애플리케이션에 제공한다. icu4c는 c/c++, icu4j는 java를 위한 라이브러리라고 한다.
공식 홈페이지를 보니 ICU 69.1은 3월 18일에 업데이트 되었다고 하는데 난 언제 업데이트를 한걸까...? 리눅스나 우분투 만지면서 했거나 brew update하면서 자동으로 됐거나 둘 중 하나인 것 같다.
내가 사용 중인 icu4c 버전 확인
구글링을 해보니 역시 버전과 관련된 문제였다. 구글링을 해보니 역시 버전과 관련된 문제였다. icu4c가 업데이트 되면서 npm, next 버전과 일치하지 않게 된 것이다. icu4c를 다루는 항목을 검색해보니 69.1이었다.
- $ ll usr/local/opt/icu4c
- $ brew list icu4c --versions
1. 해결 방법 (node, npm 업데이트)
만약 지금 내가 사용하는 node, npm 버전 업데이트를 안해준지 오래됐다면 한 번 업데이트 해주는 것도 괜찮은 방법이다.
1) Hombrew를 통해 설치했을 경우
- $ brew update
- $ brew upgrade node
- $ npm install -g npm
2) pkg를 통해 설치했을 경우
- $ npm install -g n
- $ npm cache clean -f
- $ sudo n stable
2. 해결 방법 (icu4c 버전 바꾸기 69.1 → 68.2 )
1) cd 에서 Hombrew 공식 디렉토리로 이동한다.
- $ cd $(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core/Formula
2) 원하는 버전으로 커밋 복사하기 (icu4c - 68.2)
- $ git log --follow icu4c.rb
3) 복사한 커밋을 통해 새로운 브런치 생성 후 체크아웃
- $ git checkout -b {원하는 브런치 이름} {해당 버전 commit id}
68.2는 아래꺼 복사
- $ git checkout -b icu4c-68.2 fdba13da61f815f5ab0789f4af72b8f9d05543a6
4) 해당 버전으로 brew 재설치
- $ brew reinstall ./icu4c.rb
5) 다시 마스터로 체크아웃
- $ git checkout master
6) 적용 성공
npm이 정상적으로 작동되는 것을 확인할 수 있다.
참고
https://hanxue-it.blogspot.com/2018/08/macos-homebrew-installing-older-version-of-software.html
'Dot . > 에러 모음' 카테고리의 다른 글
[Spring Security + Thymeleaf] logout시 csrf 토큰 관련 에러 (0) | 2022.03.30 |
---|---|
[DB Error] 'hibernate_sequence' is not a SEQUENCE (0) | 2021.09.01 |
[Maven Error] Error:java: error: release version 5 not supported (0) | 2021.05.04 |
[AWS Error] Ubuntu SSH 접속할 때 pem 접근권한 설정 (Permissions 0644 for 'xxx.pem' are too open) (0) | 2021.02.10 |
[React Error] antd bug (fixed dosen't work with -webkit-transform) (0) | 2021.01.10 |