J'ai installé le noeud en utilisant homebrew (Mojave), ensuite php a cessé de fonctionner et si j'essaye de courir php -v
j'obtiens cette erreur:
php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
J'ai essayé de désinstaller le nœud et icu4c mais le problème persiste
Réponses:
Je viens d'avoir ce même problème. La mise à niveau de Homebrew puis le nettoyage ont fonctionné pour moi. Cette erreur est probablement apparue pour moi en raison d'une incompatibilité dans les versions de package. Aucune des solutions ci-dessus n'a résolu mon erreur, mais l'exécution des commandes homebrew suivantes l'a fait.
puis
la source
brew upgrade
mettra à niveau tous vos packages obsolètes, au lieu de cela, probablement uniquementbrew upgrade npm
ou un package spécifique, pas tous.Dans mon cas, cela s'est produit car icu4c a été mis à niveau vers la version 63 mais mon image postgres installée localement faisait toujours référence à icu4c 62.1. J'ai donc dû changer la version icu4c utilisée:
Où
version
est la version installée retournée parinfo
la source
brew list icu4c
a montré un fichier de/usr/local/Cellar/icu4c/63.1
.brew switch icu4c 63.1
réparé pour moi.brew switch icu4c 63.1
mais j'obtiens toujours la même erreur dans les journaux, même après le redémarrage de postgres. Je ne sais pas quoi faire ensuite ...brew reinstall postgres
et cela a semblé résoudre mes problèmesicu4c 61.1
.63.1
- pas résolu.62.1
- pas trouvé.Je suis en fait assez surpris que cette solution n’ait pas encore été présentée et j’ai l’impression que c’est la solution la plus simple.
Accédez à GitHub, recherchez la version du fichier de brassage qui correspond à la version
icu4c
dont vous avez besoin et obtenez la version brute du fichier (suivez les liens ci-dessus et cliquezView File
ensuiteRaw
).Ensuite, il suffit de réinstaller brew à partir de cette URL.
Par exemple, version
62.1
:Par exemple, version
64.2
:la source
brew switch icu4c 62.1
ne fonctionne pas pour vous en premier lieu.dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
cette commande l'a corrigé: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
Il s'avère que, comme @Grey Black, j'ai dû installer la v62.1 d'icu4c. Rien d'autre n'a fonctionné.
Cependant,
brew switch icu4c 62.1
ne fonctionne que si vous avez installé 62.1 dans le passé. Si ce n'est pas le cas, il y a plus de travail à faire. Homebrew ne facilite pas l'installation des versions précédentes des formules.Voici comment je l'ai fait:
git -C $(brew --repo homebrew/core) fetch --unshallow
brew log icu4c
pour retrouver un commit qui référence 62.1;575eb4b
fait l'affaire.cd $(brew --repo homebrew/core)
git checkout 575eb4b -- Formula/icu4c.rb
brew uninstall --ignore-dependencies icu4c
brew install icu4c
Vous devriez maintenant avoir la bonne version de la dépendance! Maintenant juste pour ...git reset && git checkout .
Nettoyez votre recette modifiée.la source
brew log icu4c
, il n'y a que 3-4 résultats. Aucun ne mentionne 62.1. Le hachage que vous utilisez ci-dessus ne fonctionne pas non plus. En ont-ils retiré 62?git -C (brew --repo homebrew/core) fetch --unshallow
pour vous assurer que vous avez un historique complet de brassage.icu4c
. Ni la mise à jour, ni la mise à niveau de brew n'a fonctionné, ni la réinstallation, la liaison, la construction de php à partir de la source.git checkout bc0c97952453ff6afc146aa3a706e9902aba4300 -- Formula/icu4c.rb
et puisbrew switch 63.1
J'ai eu le même problème après avoir mis
macOS
à niveau ma version10.13.6
. Je ne peux pas exécutercomposer
etphp
commander. Après avoir recherché pendant un certain temps et essayé diverses solutions publiées en ligne, la réinstallation de php à l'aide dehomebrew
travaillé.brew reinstall [email protected]
Ajouté le 14 mars sur la base du commentaire de Ryan
obtenez la version que vous utilisez actuellement en exécutant
php -v
et obtenez les bonnes formules (que vous pouvez trouver ici: https://formulae.brew.sh/formula/php ) à remplacer@7.1
dans la commande ci-dessus.la source
node
après la mise à niveau de macOS vers10.14.2
,brew reinstall node
était le ticket pour moi aussibrew upgrade
corrigé pour moi.brew reinstall php
peut finir par installer une version différente de la version actuelle. Vous devrez peut-être spécifier la version à l'aide de[email protected]
php -v
si votre php est cassé: pecho $PATH
(si vous l'avezphp
, vous devriez voir quelque chose comme ça :)/usr/local/opt/[email protected]/bin
), c'est une façon de savoir quelles versions sont actuellement utilisées.Exécutez
npm version
et voyez si vous voyez la même erreur.Si c'est le cas, mettez à niveau votre version npm
brew upgrade npm
.Crédits
la source
Cela m'a corrigé:
la source
Juste
brew remove php
etbrew install php
n'a pas fonctionné, pas plusbrew reinstall php
. Ma solution était de faire:Me
php -v
donne maintenant :la source
Il semble qu'il soit impossible de créer un lien à l'
icu4c
aidebrew
de la dernière mise à jour d'OS X. Ce qui rend les choses plus intéressantes. La seule solution que j'ai trouvée fonctionnant pour moi:icu4c
62.1 pour/usr/local/icu4c/62.1
DYLD_LIBRARY_PATH
dans~/.bash_profile
:la source
Sur MacOS Mojave, la seule façon de résoudre ce problème était avec
brew upgrade
la source
J'ai eu des problèmes car ma version de PHP (7.3) s'attendait à icu4c 63 et brew n'en installerait que 64.
https://stackoverflow.com/a/55828190/2000947 m'a aidé à installer 63.
la source
Pour moi,
brew reinstall nodejs
cela a été résolu - mon problème était avec l'exécution d'Elixir / Phoenix, donc pas spécifique à PHP, je pense que cela était dû àbrew install postgres
, mais la réinstallation n'a pas aidé. Je le recevais desnpm
commandes.la source
brew update && brew upgrade
travaillé pour moila source
C'est ce qui a finalement fonctionné pour moi.
brew reinstall postgres
Après avoir exécuté la commande ci-dessus, vous devrez peut-être exécuter
brew postgresql-upgrade-database
pour accéder à vos données précédentes.
la source
Plutôt que d'installer une ancienne version de ce
icu4c
que l'ancien php (précompilé) peut lier, il est préférable de recompiler l'ancien php pour le lier à la bibliothèque la plus récente.Cela va construire php et le lier à la nouvelle bibliothèque. J'ai trouvé que ça
reinstall
ne fonctionnait pas tout à fait; la nouvelle installation s'est étouffée lorsque le dossier de destination existait déjà.Je l'ai aussi fait
brew link --force [email protected]
pour mon environnement.la source
brew switch icu4c 62.1
commandement de Gray Black a cependant fonctionné pour moi.La réponse de Leland a fonctionné pour moi, mais j'ai dû changer les étapes 4 et 6 pour:
4) Git Checkout -B icu4c-62.1 575eb4b
6) Réinstallez la formule / icu4c.rb
la source
Afin de rétrograder, j'ai dû recompiler à partir de la source (MacOS Mojave)
la source
j'ai suivi cet article ici et cela semble être la pièce manquante du puzzle pour moi:
la source
Sur OSX 10.15.4, l'exécution a
xcode-select --install
résolu le problème pour moi.la source
Vous avez également cette erreur après l'installation de PHP 7.3. Je l'ai résolu en mettant à niveau uniquement mes anciennes versions de php (5.6 et 7.0, pas à partir des dépôts officiels).
Les mainteneurs avaient compilé de nouvelles versions de php contre l'icu4c actuel.
Dans mon cas, PHP 7 est passé de 0,31 à 0,33, et le problème a été résolu.
la source
La solution dans cet esprit l'a fait pour moi
la source
dans mon cas, je réinstalle tous les packages installés avec Homebrew
Après cela, je commence à installer ma version dont j'ai besoin
la source