私は自作(Mojave)を使用してノードをインストールしました、その後phpは動作を停止しました。
php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
Nodeとicu4cの両方をアンインストールしようとしましたが、問題が解決しません
私の場合は、icu4cがバージョン63にアップグレードされたのに私のローカルにインストールされたpostgresイメージがまだicu4c 62.1を参照していたために起こりました。そのため、私は使用しているicu4cのバージョンを変更する必要がありました。
brew switch icu4c 62.1
注 - これにより、PHPバージョンがアップグレードされます。
私はちょうど同じ問題を抱えていました。 Homebrewをアップグレードしてからクリーンアップするのが私のために働きました。パッケージバージョンの不一致が原因で、このエラーが発生した可能性があります。上記の解決策のどれも私のエラーを解決しませんでした。
brew upgrade
その後
brew cleanup
私は@Grey Blackのように、icu4cのv62.1を実際にインストールしなければならなかったことがわかりました。他に何もうまくいきませんでした。
ただし、brew switch icu4c 62.1
は、過去に62.1をインストールした場合にのみ機能します。あなたが関与しているより多くの脚注がない場合Homebrewは インストールが簡単ではありません 以前のバージョンの式。
これが私のやり方です。
git -C $(brew --repo homebrew/core) fetch --unshallow
brew log icu4c
。 575eb4b
トリックを行います。cd $(brew --repo homebrew/core)
git checkout 575eb4b -- Formula/icu4c.rb
brew uninstall --ignore-dependencies icu4c
brew install icu4c
これで正しいバージョンの依存関係が手に入りました!今だけ….git reset && git checkout .
変更したレシピを一掃する。キャッチしてくれた@Noahに感謝する。
macOS
をバージョン10.13.6
にアップグレードした後も同じ問題がありました。 composer
およびphp
コマンドを実行できません。しばらく研究してオンラインで投稿されたさまざまな解決策を試した後、homebrew
を使ってphpを再インストールすることはうまくいきました。
brew reinstall [email protected]
Ryanのコメントに基づいて3月14日に追加されました
上記のコマンドでphp -v
を置き換えるために@7.1
を実行することによって現在使用しているバージョンを取得し、正しい式(ここで見つけることができます: https://formulae.brew.sh/formula/php )を取得してください。
実際、このソリューションがまだ提示されていないことに非常に驚いており、最も簡単なソリューションであると感じています。
GitHubに移動し、必要なicu4c
のバージョンに一致するbrewfileのバージョンを見つけて、ファイルの未加工バージョンを取得します(上記のリンクに従って、View File
、Raw
の順にクリックします) 。
次に、そのURLからbrewを再インストールします。
たとえば、バージョン62.1
:
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/575eb4bbef683551e19f329f60456b13a558132f/Formula/icu4c.rb
これは私のためにそれを修正しました:
brew upgrade node
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 version
を実行して、同じエラーが表示されるかどうかを確認してください。
その場合は、ノードバージョン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
私のバージョンのPHP(7.3)はicu4c 63を想定しており、brewは64のみをインストールするため、問題がありました。
https://stackoverflow.com/a/55828190/2000947 63のインストールに役立ちました。
Lelandの答えは私には役に立ちましたが、私はステップ4と6を次のように変更しなければなりませんでした。
4)git checkout -B icu4c-62.1 575eb4b
6)Formula/icu4c.rbを再インストールします。
Php 7.3をインストールした後にも、このエラーが発生しました。私はそれを私の古いphpのバージョン(5.6と7.0、公式のリポジトリからではない)だけをアップグレードすることで解決しました。
メンテナは現在のicu4cに対して新しいphpバージョンをコンパイルしました。
私の場合、PHP 7は0.31から0.33になり、問題は解決しました。
最新のOS Xアップデート後にbrew
を使用してicu4c
をリンクすることは不可能であるようです。これは物事をより面白くします。私が見つけた唯一の解決策
icu4c
62.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
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がリンクできる古いバージョンのicu4c
をインストールするのではなく、古いphpを最新のライブラリにリンクするように再コンパイルすることをお勧めします。
brew uninstall [email protected]
brew install --build-from-source [email protected]
これはphpを構築し、それを新しいライブラリにリンクします。 reinstall
はなかなかうまくいきませんでした。インストール先フォルダがすでに存在するときに、新しいインストールが中断されました。
私の環境でもbrew link --force [email protected]
をしました。
ダウングレードするために、ソースから再コンパイルする必要がありました(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