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 icu4c62.1을 참조하는 커밋을 추적합니다.이것이 유효합니다.cd $(brew --repo homebrew/core)git checkout 575eb4b -- Formula/icu4c.rbbrew uninstall --ignore-dependencies icu4cbrew 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 업데이트 후.그래서 일이 더 흥미로워지죠내가 찾은 유일한 해결책은 다음과 같다.
- 다운로드 및 컴파일
icu4c62.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-versionsbrew 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 |