Zainstalowałem węzeł za pomocą homebrew (Mojave), potem php przestał działać i jeśli spróbuję uruchomić, php -v
pojawia się 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
Odpowiedzi:
Właśnie miałem ten sam problem. Ulepszenie Homebrew, a następnie sprzątanie działało dla mnie. 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 uruchomiły następujące polecenia homebrew.
i wtedy
źródło
brew upgrade
zaktualizuje wszystkie wasze nieaktualne pakiety napoju, zamiast tego prawdopodobnie tylko zróbbrew upgrade npm
lub konkretny pakiet, nie wszystkie.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:
Gdzie
version
jest zwracana zainstalowana wersjainfo
źródło
brew list icu4c
pokazał pliki z/usr/local/Cellar/icu4c/63.1
.brew switch icu4c 63.1
naprawiłem to dla mnie.brew switch icu4c 63.1
ale nadal pojawia się ten sam błąd w logach, nawet po ponownym uruchomieniu postgres. Nie jestem pewien, co robić dalej ...brew reinstall postgres
i to chyba rozwiązało moje problemyicu4c 61.1
.63.1
- nie rozwiązuje.62.1
- nie znaleziono.Jestem właściwie zaskoczony, że to rozwiązanie nie zostało jeszcze zaprezentowane i wydaje mi się, że jest to najłatwiejsze rozwiązanie.
Idź do GitHub, znajdź wersję pliku browaru, która odpowiada wersji
icu4c
, której potrzebujesz, i uzyskaj surową wersję pliku (skorzystaj z linków powyżej i kliknijView File
wtedyRaw
).Następnie wystarczy ponownie zainstalować brew z tego adresu URL.
Na przykład wersja
62.1
:Na przykład wersja
64.2
:źródło
brew switch icu4c 62.1
nie działa w pierwszej kolejności.dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
polecenie to naprawiło:brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/22fb699a417093cd1440857134c530f1e3794f7d/Formula/icu4c.rb
Okazuje się, że ja, podobnie jak @ Grey Black, musiałem zainstalować wersję 62.1 icu4c. Nic innego nie działało.
brew switch icu4c 62.1
Działa to jednak tylko wtedy, gdy w przeszłości zainstalowano 62.1. Jeśli nie masz, jest więcej pracy nóg. Homebrew nie ułatwia instalacji poprzednich wersji formuł.Oto jak to zrobiłem:
git -C $(brew --repo homebrew/core) fetch --unshallow
brew log icu4c
wyśledzić zatwierdzenie, które odwołuje się do 62.1;575eb4b
Zrób sztuczkę.cd $(brew --repo homebrew/core)
git checkout 575eb4b -- Formula/icu4c.rb
brew uninstall --ignore-dependencies icu4c
brew install icu4c
Powinieneś teraz mieć poprawną wersję zależności! Teraz tylko ...git reset && git checkout .
Oczyść zmodyfikowany przepis.źródło
brew log icu4c
, są tylko 3-4 wyniki. Żadna wzmianka 62.1. Hash, którego używasz powyżej, również nie działa. Czy usunęli 62?git -C (brew --repo homebrew/core) fetch --unshallow
aby upewnić się, że masz pełną historię gitów.icu4c
. Ani aktualizacja, ani aktualizacja browaru nie działała, ani ponowna instalacja, ponowne łączenie, budowanie php ze źródła.git checkout bc0c97952453ff6afc146aa3a706e9902aba4300 -- Formula/icu4c.rb
a następniebrew switch 63.1
Miałem ten sam problem po aktualizacji
macOS
do wersji10.13.6
. Nie mogę biegaćcomposer
iphp
wydawać poleceń. Po dłuższym badaniu i wypróbowaniu różnych rozwiązań opublikowanych online, przeinstalowanie php przy użyciuhomebrew
działało.brew reinstall [email protected]
Dodano 14 marca na podstawie komentarza Ryana
pobierz wersję, której obecnie używasz,
php -v
i uruchom odpowiednie formuły (które możesz znaleźć tutaj: https://formulae.brew.sh/formula/php ) i zastąp@7.1
je powyższym poleceniem.źródło
node
po uaktualnieniu systemu macOS do10.14.2
,brew reinstall node
był również biletem dla mniebrew upgrade
stałe to dla mnie.brew reinstall php
może skończyć się instalacją innej wersji niż bieżąca. Może być konieczne określenie wersji za pomocą[email protected]
php -v
jeśli twój php jest uszkodzony: pecho $PATH
(jeśli takphp
, powinieneś zobaczyć coś takiego :)/usr/local/opt/[email protected]/bin
jest to jeden ze sposobów, aby dowiedzieć się, które wersje są obecnie używane.Uruchom
npm version
i sprawdź, czy widzisz ten sam błąd.Jeśli tak, zaktualizuj swoją wersję npm
brew upgrade npm
.Kredyty
źródło
Naprawiłem to dla mnie:
źródło
Po prostu
brew remove php
ibrew install php
nie działało, ani nie działałobrew reinstall php
. Moje rozwiązanie polegało na:Teraz
php -v
daje mi:źródło
Wydaje się, że nie można połączyć
icu4c
za pomocąbrew
najnowszej aktualizacji OS X. Co czyni rzeczy bardziej interesującymi. Jedyne rozwiązanie, które dla mnie działało:icu4c
62.1 do/usr/local/icu4c/62.1
DYLD_LIBRARY_PATH
w~/.bash_profile
:źródło
Na MacOS Mojave jedyny sposób, w jaki mogłem to naprawić
brew upgrade
źródło
Miałem problemy, ponieważ moja wersja PHP (7.3) oczekiwała icu4c 63, a brew zainstalowałaby tylko 64.
https://stackoverflow.com/a/55828190/2000947 pomógł mi zainstalować 63.
źródło
Dla mnie
brew reinstall nodejs
to naprawiłem - mój problem polegał na uruchomieniu Elixir / Phoenix, więc nie jest specyficzny dla PHP, myślę, że był to spowodowanybrew install postgres
, ale ponowna instalacja nie pomogła. Otrzymywałem to znpm
poleceń.źródło
brew update && brew upgrade
pracował dla mnieźródło
Zamiast instalować starą wersję tego
icu4c
, do którego stary (wstępnie skompilowany) php może się połączyć, lepiej ponownie skompilować stary php, aby połączyć się z nowszą biblioteką.Spowoduje to zbudowanie php i połączenie go z nowszą biblioteką. znalazłem
reinstall
że nie całkiem działa; nowa instalacja została uduszona, gdy folder docelowy już istniał.Zrobiłem też
brew link --force [email protected]
dla mojego środowiska.źródło
brew switch icu4c 62.1
Jednak polecenie Greya Blacka działało dla mnie.Odpowiedź Lelanda działała dla mnie, ale musiałem zmienić kroki 4 i 6, aby:
4) Git Checkout -B icu4c-62.1 575eb4b
6) ponownie zainstaluj napar Formula / icu4c.rb
źródło
Aby obniżyć wersję, musiałem ponownie skompilować ze źródła (MacOS Mojave)
źródło
śledziłem ten artykuł tutaj i wydaje mi się, że jest to brakujący element układanki:
źródło
W OSX 10.15.4 działający
xcode-select --install
problem naprawił dla mnie.źródło
To w końcu dla mnie 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 swoich poprzednich danych.
źródło
Ten błąd też pojawia się po zainstalowaniu php 7.3. Rozwiązałem problem aktualizacji tylko moich starych wersji php (5.6 i 7.0, nie z oficjalnych repozytoriów).
Opiekunowie skompilowali nowe wersje php dla obecnego icu4c.
W moim przypadku PHP 7 uzyskał od 0,31 do 0,33 i problem został rozwiązany.
źródło
Rozwiązanie w tej treści zrobiło to dla mnie
źródło
w moim przypadku ponownie instaluję wszystkie pakiety zainstalowane z Homebrew
Następnie zaczynam instalować potrzebną wersję
źródło