it-swarm.com.de

dyld: Bibliothek nicht geladen: /usr/local/opt/icu4c/lib/libicui18n.62.dylib Fehler beim Ausführen des PHP-Befehls für die Installation des Knotens mit Brüh unter Mac

Ich installierte Knoten mit Homebrew (Mojave), danach funktionierte PHP nicht mehr und wenn ich versuche, PHP -v auszuführen, erhalte ich diesen Fehler:

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

Ich habe versucht, beide Knoten und icu4c zu deinstallieren, aber das Problem bleibt bestehen

18
petekaner

Es stellte sich heraus, dass ich wie @Grey Black tatsächlich v62.1 von icu4c installieren musste. Sonst hat nichts funktioniert.

brew switch icu4c 62.1 Funktioniert jedoch nur, wenn Sie 62.1 in der Vergangenheit installiert haben. Wenn Sie nicht haben, ist mehr Beinarbeit erforderlich. Homebrew macht macht die Installation nicht einfach frühere Versionen von Formeln.

So habe ich es gemacht:

  1. Wir brauchen zuerst einen tiefen Klon des Homebrew-Repos. Dies kann eine Weile dauern: git -C $(brew --repo homebrew/core) fetch --unshallow
  2. brew log icu4c, Um ein Commit aufzuspüren, das auf 62.1 verweist; 575eb4b macht den Trick.
  3. cd $(brew --repo homebrew/core)
  4. git checkout 575eb4b -- Formula/icu4c.rb
  5. brew uninstall --ignore-dependencies icu4c
  6. brew install icu4c Sie sollten jetzt die richtige Version der Abhängigkeit haben! Nun nur noch zu ...
  7. git reset && git checkout . Bereinige dein geändertes Rezept.

Ein paar zusätzliche Anmerkungen wurden hinzugefügt, danke an @Noah für den Fang

51
Leland

In meinem Fall geschah dies, weil icu4c auf Version 63 aktualisiert wurde, aber mein lokal installiertes Postgres-Image noch auf icu4c 62.1 verwies. Daher musste ich die verwendete icu4c-Version ändern:

 brew switch icu4c 62.1
22
Grey Black

Ich bin eigentlich ziemlich überrascht, dass diese Lösung noch nicht vorgestellt wurde und ich denke, dass es die einfachste Lösung ist.

Gehen Sie zu GitHub, suchen Sie die Version der Brew-Datei, die der Version von icu4c entspricht, die Sie benötigen, und rufen Sie die unformatierte Version der Datei ab (folgen Sie den obigen Links und klicken Sie auf View File und dann auf Raw). .

Dann muss Brew einfach von dieser URL neu installieren.

Beispiel: Version 62.1:

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

Ich hatte das gleiche Problem, nachdem ich meine macOS auf Version 10.13.6 aktualisiert hatte. Ich kann keine composer- und php-Befehle ausführen. Nachdem Sie eine Weile recherchiert und verschiedene online ausprobierte Lösungen ausprobiert hatten, funktionierte die Neuinstallation von PHP mit homebrew

brew reinstall php

11
Arun Karnati

Das hat es für mich behoben:

brew upgrade node
6
serdarsenay

Führen Sie npm version aus und prüfen Sie, ob derselbe Fehler angezeigt wird.

Wenn ja, aktualisieren Sie Ihre Knotenversion 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

Credits

2

Nur brew remove php und brew install php funktionierten nicht und brew reinstall php____.

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

Nun gibt mir php -v:

PHP 7.3.2 (cli) (built: Feb 14 2019 10:08:45) ( NTS )
1
user2294399

Ich hatte gerade das gleiche Problem und ein Upgrade von Homebrew und das Aufräumen funktionierte für mich. Dieser Fehler ist wahrscheinlich auf einen Fehler in den Paketversionen zurückzuführen. Keine der oben genannten Lösungen hat meinen Fehler behoben.

brew upgrade

und dann

brew cleanup
1
Jase

Ich hatte Probleme, weil meine Version von PHP (7.3) icu4c 63 erwartete und brew nur 64 installieren würde.

https://stackoverflow.com/a/55828190/2000947 hat mir bei der Installation von 63 geholfen.

1
Matt Rink

Lelands Antwort funktionierte für mich, aber ich musste die Schritte 4 und 6 folgendermaßen ändern:

4) git checkout -B icu4c-62.1 575eb4b

6) brauen neu installieren Formula/icu4c.rb

0
sgrwg

Habe diesen Fehler auch nach der Installation von PHP 7.3. Ich hatte es gelöst, nur die Versionen meiner alten PHP zu aktualisieren (5.6 und 7.0, nicht von den offiziellen Repos).

Die Betreuer hatten neue PHP-Versionen gegen die aktuelle icu4c kompiliert.

In meinem Fall stieg PHP 7 von 0,31 auf 0,33, und das Problem wurde behoben.

Es scheint unmöglich zu sein, icu4c mit brew nach dem letzten OS X-Update zu verknüpfen. Das macht die Sache interessanter. Die einzige Lösung, die ich für mich gefunden habe:

  1. icu4c herunterladen und kompilieren 62.1 to /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-Bibliotheken:
ln -s /usr/local/icu4c/62.1/lib/*.dylib /usr/local/include/
  1. Setze DYLD_LIBRARY_PATH in ~/.bash_profile:
export DYLD_LIBRARY_PATH=/usr/local/include

Hoffe, es wird ein paar Stunden Ihrer Zeit sparen.

0

Anstatt eine alte Version von icu4c zu installieren, mit der der ältere (vorkompilierte) PHP-Link eine Verbindung herstellen kann, ist es besser, den alten PHP-Code neu zu kompilieren, um eine Verknüpfung mit der neueren Bibliothek herzustellen.

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

Dadurch wird PHP erstellt und mit der neueren Bibliothek verknüpft. Ich fand, dass reinstall nicht ganz funktioniert hat; Die neue Installation wurde erstickt, wenn der Zielordner bereits vorhanden war.

Ich habe auch brew link --force [email protected] für meine Umgebung gemacht.

0
Jerry

Zum Downgrade musste ich aus dem Quellcode neu kompilieren (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
0
Smokie