dyld: Library not loaded: / usr / local/opt/icu4c/lib / libicui18n.62.błąd dylib uruchamiający php po instalacji węzła z brew na Mac

Zainstalowałem node używając homebrew( Mojave), potem php przestało działać i jeśli spróbuję uruchomić php -v dostaję ten błąd:

php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found

Próbowałem odinstalować zarówno węzeł, jak i icu4c, ale problem nadal występuje

Author: kqw, 2018-12-18

30 answers

Update-jak wspomniano w niektórych komentarzach, uruchomienie brew cleanup może naprawić ten błąd, jeśli samo to go nie naprawi, możesz spróbować uaktualnić poszczególne pakiety lub wszystkie pakiety brew.

Miałem ten sam problem. Unowocześnienie Homebrew, a potem sprzątanie zadziałało. Ten błąd prawdopodobnie pojawił się dla mnie z powodu niedopasowania w wersjach pakietów. Żadne z powyższych rozwiązań nie rozwiązało mojego błędu, ale uruchomienie następujących komend homebrew tak.

Uwaga - spowoduje to uaktualnienie wszystkich pakietów brew, w tym między innymi PHP. Jeśli chcesz uaktualnić tylko określone Pakiety, upewnij się, że są konkretne.

brew upgrade // for upgrading all packages -- this is the command I used

brew upgrade {package} // for upgrading a specific package

I wreszcie

brew cleanup
 512
Author: Vim Diesel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-11-16 17:00:14

W moim przypadku stało się tak, ponieważ icu4c został zaktualizowany do wersji 63, ale mój lokalnie zainstalowany obraz postgres nadal odwoływał się do icu4c 62.1. Dlatego musiałem zmienić używaną wersję icu4c:

 brew info icu4c
 brew switch icu4c <version>

Gdzie version jest wersją zainstalowaną zwracaną przez info

 307
Author: Grey Black,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-07 23:33:44

Jestem całkiem zaskoczony, że tego rozwiązania jeszcze nie zaprezentowano i uważam, że jest to najprostsze rozwiązanie.

Przejdź do GitHub, znajdź wersję pliku brewfile, która pasuje do wersji icu4c, której potrzebujesz i pobierz wersję raw pliku(postępuj zgodnie z linkami powyżej i kliknij View File Następnie Raw).

Następnie po prostu zainstaluj brew ponownie z tego adresu url.

Na przykład wersja 62.1:

brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/575eb4bbef683551e19f329f60456b13a558132f/Formula/icu4c.rb

Na przykład wersja 64.2:

brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
 108
Author: Kevin Elliott,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-04-23 20:38:17

Okazało się, że ja, podobnie jak @ Grey Black, musiałem zainstalować V62. 1 icu4c. nic więcej nie działało.

Jednak brew switch icu4c 62.1 działa tylko wtedy, gdy zainstalowałeś 62.1 w przeszłości. Jeśli nie masz więcej pracy w nogi. Homebrew nie ułatwia instalacji poprzednich wersji formuł.

Oto Jak to zrobiłem:

    Najpierw potrzebujemy głębokiego klona repo Homebrew. To może chwilę potrwać: git -C $(brew --repo homebrew/core) fetch --unshallow
  1. brew log icu4c aby wyśledzić commit, który odwołuje się do 62.1; 575eb4b wystarczy.
  2. cd $(brew --repo homebrew/core)
  3. git checkout 575eb4b -- Formula/icu4c.rb
  4. brew uninstall --ignore-dependencies icu4c
  5. brew install icu4c powinieneś teraz mieć poprawną wersję zależności! Teraz tak...
  6. git reset && git checkout . Wyczyść zmodyfikowany przepis.
  7. brew pin icu4c Przypnij zależność, aby zapobiec przypadkowemu uaktualnieniu w przyszłości

Jeśli zdecydujesz czy chcesz go uaktualnić w pewnym momencie, upewnij się, że uruchomisz brew unpin icu4c

 75
Author: Leland,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-15 18:48:54

Uruchom npm version, Jeśli widzisz ten sam błąd, Uaktualnij 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

Kredyty

 46
Author: Lucas Bustamante,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-08-31 13:49:25

Miałem ten sam problem po uaktualnieniu mojej macOS do wersji 10.13.6. Nie mogę uruchamiać komend composer i php. Po pewnym czasie poszukiwań i wypróbowaniu różnych rozwiązań opublikowanych online, ponowna instalacja php przy użyciu homebrew zadziałała.

brew reinstall [email protected]

Dodano 14 marca na podstawie komentarza Ryana

Pobierz aktualnie używaną wersję, uruchamiając php -v i uzyskaj odpowiednie formuły (które znajdziesz tutaj: https://formulae.brew.sh/formula/php ) do zastąpienia @7.1 w powyższe polecenie.

 42
Author: Arun Karnati,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-14 20:49:11

This fixed it for me:

brew upgrade node
 20
Author: serdarsenay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-08-05 10:38:18

Tylko brew remove php i brew install php nie zadziałały, ani brew reinstall php. Moim rozwiązaniem było zrobić:

brew remove php
cd /usr/local/Cellar
rm -rf php/
brew install php
brew doctor
brew cleanup

Teraz php -v daje mi:

PHP 7.3.2 (cli) (built: Feb 14 2019 10:08:45) ( NTS )
 9
Author: glajan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-02-25 11:02:30

Wydaje się, że niemożliwe jest połączenie icu4c za pomocą brew po najnowszej aktualizacji OS X. Co czyni rzeczy bardziej interesującymi. Jedyne rozwiązanie, które znalazłem działa dla mnie:

  1. Pobierz i skompiluj icu4c 62.1 do /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
  1. Link:
ln -s /usr/local/icu4c/62.1/lib/*.dylib /usr/local/include/
  1. Set DYLD_LIBRARY_PATH in ~/.bash_profile:
export DYLD_LIBRARY_PATH=/usr/local/include
 8
Author: Serhey Dolgushev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-19 17:22:39

brew update && brew upgrade worked for me

 3
Author: sanjok dangol,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-04 13:31:33

To w końcu zadziałało.

brew reinstall postgres

Po uruchomieniu powyższego polecenia może być konieczne uruchomienie

brew postgresql-upgrade-database

Aby uzyskać dostęp do Twoich poprzednich danych.

 3
Author: Muzammil Baloch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-03 17:10:51

Wypróbowałem wszystkie rozwiązania, które miały sens, wymienione w tym poście, a jednak nadal mam ten sam błąd podczas uruchamiania php -v lub composer. Wersja węzła była w porządku, npm, jak również nie było żadnych problemów z zainstalowaniem poprawnych wersji i wszystkie były uruchomione. Running reinstall [email protected] po prostu wyrzucił błąd. W końcu musiałem biec:

brew reinstall icu4c

To w zasadzie działało, a ja musiałem ręcznie zainstalować zależności php, takie jak imagick.so, imap.so Ponieważ biblioteki te zostały zainstalowane dla projektu że nie utrzymam, że mogę iść bez nich. Ale jeśli masz zależności od nich, należy pamiętać, że nie będzie więcej pracy do zrobienia później.

 3
Author: George Milojevic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-10-29 16:22:06

Zamiast instalować starą wersję icu4c, do której starsze (wstępnie skompilowane) php może się łączyć, lepiej przekompilować stare php tak, aby łączyło się z nowszą biblioteką.

brew uninstall [email protected]
brew install --build-from-source [email protected]

To zbuduje php i połączy go z nowszą biblioteką. Znalazłem reinstall nie do końca działa; nowa instalacja dławiła się, gdy folder docelowy już istniał.

Zrobiłem to również dla mojego środowiska.
 2
Author: Jerry,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-01-28 21:15:01

Miałem problemy, ponieważ moja wersja PHP (7.3) oczekiwała icu4c 63 i brew zainstalowałby tylko 64.

Https://stackoverflow.com/a/55828190/2000947 pomógł mi zainstalować 63.

 2
Author: Matt Rink,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-06-21 15:21:43

Aby obniżyć wersję, musiałem przekompilować ze źródła (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
 2
Author: Taher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-07-31 11:40:32

Na MacOS Mojave, jedynym sposobem, aby to naprawić, było brew upgrade

 2
Author: Léo Maldonado,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-19 17:19:16

Dla mnie brew reinstall nodejs Naprawiono to - mój problem był z uruchomieniem Elixir / Phoenix, więc nie specyficzny dla PHP, myślę, że został spowodowany przez brew install postgres, ale ponowna instalacja nie pomogła. Otrzymywałem go z npm poleceń.

 2
Author: Callum M,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-10-16 08:23:10

Śledziłem ten artykuł Tutaj i wydaje się, że to jest brakujący element układanki dla mnie:

brew uninstall node@8
 2
Author: gmansour,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-10-10 07:17:13

Odpowiedź Lelanda zadziałała na mnie, ale musiałem zmienić kroki 4 i 6 na:

4) git checkout-B icu4c-62.1 575eb4b

6) brew reinstall Formula/icu4c.rb

 1
Author: sgrwg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-21 14:39:22

Na OSX 10.15.4 uruchomiony xcode-select --install Naprawiono problem dla mnie.

 1
Author: Winter Faulk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-01 20:41:06

W moim przypadku brew update icu4c do wersji 67.1 więc mój php7. 1 nie działa. Po prostu ponownie zainstaluj icu4c, a potem będzie dobrze.

Ref to: https://devhoi.com/threads/error-dyld-library-not-loaded-usr-local-opt-icu4c-lib-libicui18n-64-dylib-with-php7-1.26/

 1
Author: Huy Phan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-02 08:23:58

Ten błąd też dostałem po zainstalowaniu php 7.3. Miałem to rozwiązany aktualizacji tylko moje stare wersje php (5.6 i 7.0, nie z oficjalnych repos).

Opiekunowie skompilowali nowe wersje php z aktualnym icu4c.

W moim przypadku PHP 7 dostało się z 0.31 do 0.33 i problem został rozwiązany.

 0
Author: David Fernández Rafael,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-03-24 10:08:39

The solution in this gist did it for me

brew uninstall --ignore-dependencies node icu4c
brew install node
 0
Author: mokagio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-06-17 04:44:36

Próbowałem wielu sugestii tutaj, i na koniec brew upgrade php jest to, co zrobił sztuczkę dla mnie, ale wydaje się, że problem jest wszędzie

 0
Author: pcambra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-10 10:03:45

W moim przypadku musiałem przełączać się między dwiema wersjami icu4c, ponieważ nadal utrzymuję projekty PHP 5.6 (które używają starego icu4c 64.2). brew zainstalować i ponownie zainstalować z raw .RB links zawsze zastępuje wcześniej zainstalowane wersje z jakiegoś powodu.

#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/

Następnie przełączanie pomiędzy wersjami

$ 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
 0
Author: Taher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-23 02:28:48

[2020] edycja

Dla mnie instalował icu4c z potrzebną wersją.

Jeśli chcesz zainstalować starą wersję, taką jak wersja 62, (te same kroki dla innych wersji), musisz:

  1. Stwórz własny repo (lub znajdź kogoś repo) z tą wersją brew tap (linki są różne dla każdej wersji):

Wersja 62

https://raw.githubusercontent.com/Homebrew/homebrew-core/575eb4bbef683551e19f329f60456b13a558132f/Formula/icu4c.rb

Wersja 64

https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb 

Wersja 66

https://raw.githubusercontent.com/Homebrew/homebrew-core/22fb699a417093cd1440857134c530f1e3794f7d/Formula/icu4c.rb

Wersja 67

https://raw.githubusercontent.com/Homebrew/homebrew-core/88b9cc789820f2f544d8d4a1053eebb044c2926c/Formula/icu4c.rb
  1. [yoursername] / homebrew-versions / Formula /
  2. umieść pobrany plik w folderze 'Formula'
  3. brew tap [yourUsername]/homebrew-versions
  4. brew install [yourUsername]/homebrew-versions/icu4c
  5. Masz to!

Gdzie [yourUsername] to nazwa Twojego konta na Githubie lub osoby, która ma już potrzebną wersję tap.

Niestety, najnowszy homebrew nie daje już ostrzeżenia i teraz wyświetla błąd: Błąd: wywołanie instalacji XXX z Githuba adres URL zatwierdzania jest wyłączony! Use " napar extract XXX ' to stable tap on GitHub zamiast tego. Więc teraz należy utworzyć nowy repo na GitHubie o nazwie homebrew-wersje hostujące formułę w kranu, a następnie inicjalizujące ją z: brew tap-new MYORG / homebrew-wersje po klonowaniu git homebrew repo zgodnie z sugestią Shine Hugh, kopiuj wklej surowy plik ruby za twoją nową formułę. Uważaj na śmieszną konwencję nazewnictwa! Przykład: Plik nazwisko: [email protected] klasy rb to: GettextAT0202 Przykład: https://github.com/nedap/homebrew-versions

Źródło: https://itnext.io/how-to-install-an-older-brew-package-add141e58d32

 0
Author: Valiyard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-09-18 11:45:56

Chciałem tylko zostawić szczegółowe podsumowanie, jak rozwiązać ten problem w bieżącej chwili (to działało dla mnie):

Najpierw przejdź do lokalnej instalacji homebrew

cd /usr/local/Homebrew/

Homebrew > 2.5 Usuń opcję instalacji formuł bezpośrednio z git repos, więc musimy sprawdzić starszą wersję

git checkout 2.3.0

Zainstalować wersję icu4c (w moim przypadku 64.2 był zgodny z [email protected])

HOMEBREW_NO_AUTO_UPDATE=1 brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb

Wróć do aktualnej wersji homebrew

git checkout -

Powiedz brewowi, aby użył starej wersji icu4c w ten sposób możesz wybrać wersję do użycia, jeśli masz zarówno intalled

brew switch icu4c 64.2
 0
Author: Varun Varunesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-12-03 07:25:52

Mój problem:

# 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

Na razie 20210118, po wielu próbach:

...
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
...

Końcowy przepracowany roztwór to:

brew reinstall npm

 0
Author: crifan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-18 09:19:09

Rozwiązałem int aktualizując wszystkie pakiety R:

update.packages(checkBuilt = TRUE, ask = FALSE)
 0
Author: Freeman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-02-08 13:07:55

W moim przypadku reinstaluję wszystkie pakiety zainstalowane z Homebrew

$ brew list | xargs brew reinstall

Po tym, zaczynam instalować moją wersję, której potrzebuję

 -2
Author: Anis Slama,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-05-17 06:54:21