dyld: 라이브러리가 로드되지 않음: Mac에서 brew를 사용하여 노드를 설치한 후 /usr/local/opt/icu4c/lib/libicui18n.62.dylib 오류 발생
homebrew(Mojave)를 사용하여 노드를 설치했지만 이후 php가 작동을 중지하고 실행하려고 하면php -v
다음의 에러가 표시됩니다.
php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
노드와 icu4c를 모두 제거하려고 했지만 아직 문제가 발생함
업데이트 - 일부 코멘트에서 설명한 대로 실행 중
brew cleanup
이 오류만 수정해도 해결되지 않으면 개별 패키지 또는 모든 brew 패키지를 업그레이드해 보십시오.
나도 똑같은 문제가 있었어홈브루를 업그레이드하고 청소를 하는 것이 나에게 효과가 있었다.패키지 버전이 일치하지 않기 때문에 이 오류가 발생한 것 같습니다.위의 솔루션 중 어느 것도 오류를 해결하지 못했지만 다음 homebrew 명령을 실행하면 해결되었습니다.
주의 - PHP를 포함한 모든 brew 패키지가 업그레이드됩니다.특정 패키지만 업그레이드하려면 특정 패키지를 지정하십시오.
brew upgrade icu4c
brew upgrade // or upgrade all packages
그리고 마지막으로
brew cleanup
제 경우 icu4c가 버전 63으로 업그레이드되었지만 로컬에 설치된 postgres 이미지는 여전히 icu4c 62.1을 참조하고 있기 때문입니다.따라서 사용하는 icu4c 버전을 변경해야 했습니다.
brew info icu4c
brew switch icu4c <version>
어디에version
에 의해 반환된 설치 버전입니다.info
.
저는 사실 이 솔루션이 아직 제시되지 않은 것에 매우 놀랐고, 그것이 가장 쉬운 해결책이라고 생각합니다.
GitHub으로 이동하여 brew 파일의 버전과 일치하는 버전을 찾습니다.icu4c
필요한 파일을 입수할 수 있습니다(위 링크에 따라 클릭).View File
그리고나서Raw
).
그러면 해당 URL에서 brew 재설치만 하면 됩니다.
예를 들어 버전62.1
:
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/575eb4bbef683551e19f329f60456b13a558132f/Formula/icu4c.rb
예를 들어 버전64.2
:
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
갱신:
Homebrew 이후 버전에서는 먼저 파일을 다운로드해야 할 수 있습니다.이 경우:
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
brew reinstall icu4c.rb
@Grey Black과 마찬가지로 실제로 icu4c의 v62.1을 설치해야 했습니다.다른 건 아무것도 안 먹혔어
하지만,brew switch icu4c 62.1
는 이전에 62.1을 설치한 경우에만 작동합니다.그렇지 않다면 다리 작업이 더 필요하겠네요.홈브루는 이전 버전의 공식 설치를 쉽게 하지 않습니다.
방법은 다음과 같습니다.
- 우리는 먼저 홈브루 리포의 깊은 복제가 필요하다.이 작업에는 시간이 걸릴 수 있습니다.
git -C $(brew --repo homebrew/core) fetch --unshallow
brew log icu4c
62.1을 참조하는 커밋을 추적합니다.이것이 유효합니다.cd $(brew --repo homebrew/core)
git checkout 575eb4b -- Formula/icu4c.rb
brew uninstall --ignore-dependencies icu4c
brew install icu4c
이제 올바른 버전의 종속성이 있어야 합니다.자, 이제...git reset && git checkout .
변경된 레시피를 정리합니다.brew pin icu4c
향후 실수로 업그레이드되는 것을 방지하기 위해 의존관계를 특정합니다.
업그레이드를 원할 경우 반드시 실행해 주십시오.brew unpin icu4c
달려.npm version
같은 에러가 표시되는 경우는, npm 를 업그레이드 합니다.
brew upgrade npm
.
==> Upgrading 1 outdated package, with result:
npm 8.1.2 -> 10.3.0
==> Upgrading npm
==> Installing dependencies for node: icu4c
==> Installing node dependency: icu4c
업그레이드 후에도 같은 문제가 발생하였습니다.macOS
버전 변경10.13.6
나는 달릴 수 없다.composer
그리고.php
명령어를 지정합니다.잠시 조사하여 온라인에 게시된 다양한 솔루션을 시도한 후 다음을 사용하여 php를 재설치합니다.homebrew
일했다.
brew reinstall php@7.1
라이언의 코멘트를 바탕으로 3월 14일 추가
를 실행하여 현재 사용 중인 버전을 가져옵니다.php -v
올바른 수식을 입수할 수 있습니다(https://formulae.brew.sh/formula/php) 를 참조해 주세요).@7.1
를 참조해 주세요.
이것으로 해결했습니다.
brew upgrade node
저에게 해결책은 다음과 같습니다.
brew reinstall icu4c
그리고나서
gem uninstall charlock_holmes
gem install charlock_holmes
링크가 불가능할 것 같습니다.icu4c
사용.brew
최신 OS X 업데이트 후.그래서 일이 더 흥미로워지죠내가 찾은 유일한 해결책은 다음과 같다.
- 다운로드 및 컴파일
icu4c
62.1 ~/usr/local/icu4c/62.1
mkdir ~/sources
cd ~/sources
wget http://download.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz
tar xvzf icu4c-62_1-src.tgz
cd icu/source/
sudo mkdir /usr/local/icu4c/62.1
./configure --prefix=/usr/local/icu4c/62.1
make
sudo make install
- 링크 libs:
ln -s /usr/local/icu4c/62.1/lib/*.dylib /usr/local/include/
- 세트
DYLD_LIBRARY_PATH
에~/.bash_profile
:
export DYLD_LIBRARY_PATH=/usr/local/include
실제로 이 글에서 언급한 의미 있는 모든 솔루션을 시도했지만 실행 시 동일한 오류가 발생하였습니다.php -v
또는composer
노드 버전은 문제없었고, npm도 올바른 버전을 설치하는 데 문제가 없었고 모두 실행 중이었습니다.입니다.reinstall php@7.1
에러를 던졌을 뿐입니다.결국 나는 도망쳐야 했다.
brew reinstall icu4c
이것은 기본적으로 작동했고, 저는 다음과 같은 php 의존관계를 수동으로 설치해야 했습니다.imagick.so
,imap.so
이 라이브러리들은 제가 더 이상 유지 보수하지 않는 프로젝트를 위해 설치되었기 때문에 그것 없이 갈 수 있습니다.하지만 의존관계가 있다면, 그 후에 더 많은 일이 있을 것이라는 것을 명심하세요.
그저.brew remove php
그리고.brew install php
효과도 없었고, 효과도 없었다.brew reinstall php
저의 해결책은 다음과 같습니다.
brew remove php
cd /usr/local/Cellar
rm -rf php/
brew install php
brew doctor
brew cleanup
지금이다php -v
다음과 같은 정보를 얻을 수 있습니다.
PHP 7.3.2 (cli) (built: Feb 14 2019 10:08:45) ( NTS )
문제:
# npm install -g canvas
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
Referenced from: /usr/local/opt/node@8/bin/node
Reason: image not found
일단 20210118은 여러 번 시도한 후:
...
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/icu4c.rb
brew upgrade npm
brew install node
brew uninstall --ignore-dependencies node@8 icu4c
brew install icu4c
...
최종 작업 솔루션은 다음과 같습니다.
brew reinstall npm
실제로 홈브루 페이지에서 직접 솔루션을 찾았습니다.https://docs.brew.sh/Common-Issues
MacOS를 업그레이드하면 다음과 같은 오류가 발생할 수 있습니다.
- dyld: 라이브러리가 로드되지 않았습니다. /usr/local/opt/icu4c/lib/lib/libicui18n.54.dylib 구성: 오류: libz를 찾을 수 없습니다.
- MacOS 업그레이드 후 Xcode 명령줄 도구를 다시 설치하고 설치된 모든 수식을 brew upgrade해야 할 수 있습니다.
xcode-select --install
brew upgrade
제 경우 OS 업그레이드와 관련된 문제는 아니지만, 솔루션은 잘 작동했습니다.
2021-02 간단한 솔루션
수년간 이 문제에 대처해 온 결과, 다음과 같은 의외로 간단한 솔루션이 효과를 발휘했습니다.
- 필요한 버전의 raw 파일을 웹 브라우저에서 엽니다.
버전 62: https://raw.githubusercontent.com/Homebrew/homebrew-core/575eb4bbef683551e19f329f60456b13a558132f/Formula/icu4c.rb
버전 64: https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
버전 66: https://raw.githubusercontent.com/Homebrew/homebrew-core/22fb699a417093cd1440857134c530f1e3794f7d/Formula/icu4c.rb
버전 67: https://raw.githubusercontent.com/Homebrew/homebrew-core/88b9cc789820f2f544d8d4a1053eebb044c2926c/Formula/icu4c.rb
최신 버전 : https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/icu4c.rb
- 내용을 icu4c.rb라는 이름의 새 파일에 복사합니다.
- 새로 생성된 파일에서 다음을 실행합니다.
brew reinstall icu4c.rb
출처 : https://gist.github.com/hgrimelid/703691ab48c4a4d0537cfe835b4d55a6
나를 위해.brew reinstall nodejs
이 문제를 해결했습니다.제 문제는 Elixir/Phoenix의 실행에 관한 것이었기 때문에 PHP에 특유한 것이 아니라고 생각합니다.brew install postgres
하지만 다시 설치하는 것은 도움이 되지 않았습니다.나는 그것을 받고 있었다.npm
명령어를 지정합니다.
다운그레이드를 하려면 소스(MacOS Mojave)에서 다시 컴파일해야 했습니다.
$ wget https://ssl.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz
$ tar xvfz icu4c-62_1-src.tgz
$ cd icu/sources
$ ./configure
$ make
$ make install
brew update && brew upgrade
나를 위해 일했다
이게 결국 나한테 먹힌 거야
brew reinstall postgres
위의 명령어를 실행한 후 실행이 필요할 수 있습니다.
brew postgresql-upgrade-database
이전 데이터에 액세스할 수 있습니다.
여기 이 기사를 따라갔는데 이게 퍼즐의 한 조각이 빠진 것 같아요.
brew uninstall node@8
이전 버전을 설치하는 대신icu4c
오래된 (사전 컴파일된) php를 링크할 수 있는 경우 오래된 php를 다시 컴파일하여 최신 라이브러리에 링크하는 것이 좋습니다.
brew uninstall php@7.2
brew install --build-from-source php@7.2
그러면 php가 빌드되고 새로운 라이브러리에 링크됩니다.찾았다reinstall
제대로 작동하지 않았습니다. 대상 폴더가 이미 있을 때 새 설치가 중지되었습니다.
나도 그랬어brew link --force php@7.2
내 환경을 위해.
내 버전의 PHP(7.3)는 icu4c 63을 예상하고 있었고 brew는 64만 설치할 예정이었기 때문에 문제가 있었습니다.
63 의 인스톨은, https://stackoverflow.com/a/55828190/2000947 에서 서포트되고 있습니다.
MacOS 모하비에서 해결할 수 있는 유일한 방법은brew upgrade
OSX 10.15.4를 실행하고 있는 경우xcode-select --install
저를 위해 문제를 해결해주셨어요.
Leland의 답변은 효과가 있었지만, 4단계와 6단계를 변경하여 다음을 수행해야 했습니다.
4) git checkout - B icu4c-62.1 575eb4b
6) brew 재설치 Formula/icu4c.rb
brew uninstall --ignore-dependencies node icu4c
brew install node
제 경우, icu4c를 버전 67.1로 업데이트하면 php7.1이 작동하지 않습니다.ICU4c를 다시 설치하면 됩니다.
참조처: https://devhoi.com/threads/error-dyld-library-not-loaded-usr-local-opt-icu4c-lib-libicui18n-64-dylib-with-php7-1.26/
php 7.3 설치 후 이 오류도 발생하였습니다.이전 버전의 php만 업그레이드 할 수 있도록 했습니다(공식 저장소가 아닌 5.6과 7.0).
유지보수는 현재 icu4c에 대해 새로운 php 버전을 컴파일했습니다.
제 경우 PHP 7이 0.31에서 0.33으로 바뀌어 문제가 해결되었습니다.
제 경우 PHP 5.6 프로젝트(구 icu4c 64.2 사용)를 유지하고 있기 때문에 두 가지 버전의 icu4c를 교체해야 했습니다.brew 설치와 raw .rb 링크로부터의 재설치는 어떤 이유로든 항상 이전에 설치된 버전을 대체합니다.
#fetching 64.2
brew fetch https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
#fetching stable version
brew fetch https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/icu4c.rb
cd $(brew --cache)/downloads
tar xvfz e2a83648f37dc5193016ce14fa6faeb97460258b214e805b1d7ce8956e83c1a7--icu4c-64.2.catalina.bottle.tar.gz
tar xvfz e045a709e2e21df31e66144a637f0c77dfc154f60183c89e6b04afa2fbda28ba--icu4c-67.1.catalina.bottle.tar.gz
mv -n icu4c/67.1 $(brew --cellar)/icu4c/
mv -n icu4c/64.2 $(brew --cellar)/icu4c/
그런 다음 버전
$ brew switch icu4c 64.2
Cleaning /usr/local/Cellar/icu4c/64.2
Cleaning /usr/local/Cellar/icu4c/67.1
Opt link created for /usr/local/Cellar/icu4c/64.2
$ brew switch icu4c 67.1
Cleaning /usr/local/Cellar/icu4c/64.2
Cleaning /usr/local/Cellar/icu4c/67.1
Opt link created for /usr/local/Cellar/icu4c/67.1
[timeout] 에디션
저는 필요한 버전으로 icu4c를 설치하고 있었습니다.
버전 62와 같은 이전 버전을 설치해야 하는 경우(다른 버전의 경우 동일한 절차) 다음 작업을 수행해야 합니다.
- 이 버전의 brew tap을 사용하여 자신만의 repo를 만듭니다(또는 repo를 찾습니다). (링크는 버전에 따라 다릅니다.)
버전 62
https://raw.githubusercontent.com/Homebrew/homebrew-core/575eb4bbef683551e19f329f60456b13a558132f/Formula/icu4c.rb
버전 64
https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
버전 66
https://raw.githubusercontent.com/Homebrew/homebrew-core/22fb699a417093cd1440857134c530f1e3794f7d/Formula/icu4c.rb
버전 67
https://raw.githubusercontent.com/Homebrew/homebrew-core/88b9cc789820f2f544d8d4a1053eebb044c2926c/Formula/icu4c.rb
- [사용자명] / homebrew 버전 / Formula /
- 다운로드한 파일을 'Formula' 폴더에 저장
brew tap [yourUsername]/homebrew-versions
brew install [yourUsername]/homebrew-versions/icu4c
- 잘 생각하셨어요!
여기서 [your Username]은 GitHub 계정 또는 필요한 버전 탭이 이미 있는 사람의 이름입니다.
유감스럽게도 최신 homebrew는 더 이상 경고를 주지 않고 "Error: Calling Installation of XXX from a GitHub commit URL"이라는 오류를 표시합니다.대신 'brew extract XXX'를 사용하여 GitHub를 안정적으로 탭합니다.따라서 지금 방법은 홈브루버전이라고 불리는 github에 새로운 레포(repo)를 생성하여 Tap in a Tap으로 포뮬라를 호스팅하는 것입니다.그 후: Shine Hugh가 제안한 홈브루 레포(repo)를 복제한 후 brew-new MYORG/homebrew-versions로 초기화합니다.재미있는 명명 규칙을 주의하세요!예:파일명: gettext@0.20.2.rb 클래스명: GettextAT0202 예:https://github.com/nedap/homebrew-versions
출처 : https://itnext.io/how-to-install-an-older-brew-package-add141e58d32
현시점에서 이 문제를 해결하는 방법에 대한 자세한 개요를 남겨두고 싶습니다(이 방법이 도움이 되었습니다).
먼저 홈브루의 로컬 설치로 이동합니다.
cd /usr/local/Homebrew/
Homebrew > 2.5는 git 저장소에서 직접 수식을 설치하는 옵션을 삭제하므로 이전 버전을 확인해야 합니다.
git checkout 2.3.0
icu4c 버전을 설치합니다(내 경우 64.2는 php@7.1과 호환성이 있습니다).
HOMEBREW_NO_AUTO_UPDATE=1 brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
현재 버전의 홈브루로 되돌아가다
git checkout -
brew에 이전 버전의 icu4c를 사용하도록 지시합니다. 둘 다 설치되어 있는 경우 사용할 버전을 선택할 수 있습니다.
brew switch icu4c 64.2
언급URL : https://stackoverflow.com/questions/53828891/dyld-library-not-loaded-usr-local-opt-icu4c-lib-libicui18n-62-dylib-error-run
'programing' 카테고리의 다른 글
PHP에서 타임스탬프를 시간 전으로 변환하는 중(예: 1일 전, 2일 전)... (0) | 2022.09.30 |
---|---|
두 타임스탬프 간의 MySql 차이(초) (0) | 2022.09.30 |
MySQL에서 이 인덱스를 삭제하는 방법 (0) | 2022.09.30 |
문자열에 JavaScript의 하위 문자열 배열 텍스트가 포함되어 있는지 확인하는 방법 (0) | 2022.09.30 |
다차원 어레이를 평평하게 하는 방법 (0) | 2022.09.30 |