web-dev-qa-db-ja.com

dyld:ライブラリがロードされていません:/usr/local/opt/icu4c/lib/libicui18n.62.dylibエラー実行中のphp afeterノードのインストール(Mac)

私は自作(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の両方をアンインストールしようとしましたが、問題が解決しません

86
petekaner

私の場合は、icu4cがバージョン63にアップグレードされたのに私のローカルにインストールされたpostgresイメージがまだicu4c 62.1を参照していたために起こりました。そのため、私は使用しているicu4cのバージョンを変更する必要がありました。

 brew switch icu4c 62.1
115
Grey Black

- これにより、PHPバージョンがアップグレードされます。

私はちょうど同じ問題を抱えていました。 Homebrewをアップグレードしてからクリーンアップするのが私のために働きました。パッケージバージョンの不一致が原因で、このエラーが発生した可能性があります。上記の解決策のどれも私のエラーを解決しませんでした。

brew upgrade

その後

brew cleanup
103
Jase

私は@Grey Blackのように、icu4cのv62.1を実際にインストールしなければならなかったことがわかりました。他に何もうまくいきませんでした。

ただし、brew switch icu4c 62.1は、過去に62.1をインストールした場合にのみ機能します。あなたが関与しているより多くの脚注がない場合Homebrewは インストールが簡単ではありません 以前のバージョンの式。

これが私のやり方です。

  1. 私たちは最初にHomebrewレポの深いクローンが必要です。これにはしばらく時間がかかります。git -C $(brew --repo homebrew/core) fetch --unshallow
  2. 62.1を参照するコミットを追跡するためのbrew log icu4c575eb4b トリックを行います。
  3. cd $(brew --repo homebrew/core)
  4. git checkout 575eb4b -- Formula/icu4c.rb
  5. brew uninstall --ignore-dependencies icu4c
  6. brew install icu4cこれで正しいバージョンの依存関係が手に入りました!今だけ….
  7. git reset && git checkout .変更したレシピを一掃する。

キャッチしてくれた@Noahに感謝する。

30
Leland

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 )を取得してください。

20
Arun Karnati

実際、このソリューションがまだ提示されていないことに非常に驚いており、最も簡単なソリューションであると感じています。

GitHubに移動し、必要なicu4cのバージョンに一致するbrewfileのバージョンを見つけて、ファイルの未加工バージョンを取得します(上記のリンクに従って、View FileRawの順にクリックします) 。

次に、そのURLからbrewを再インストールします。

たとえば、バージョン62.1

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

これは私のためにそれを修正しました:

brew upgrade node
6
serdarsenay

brew remove phpbrew 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 )
2
glajan

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

クレジット

2

私のバージョンのPHP(7.3)はicu4c 63を想定しており、brewは64のみをインストールするため、問題がありました。

https://stackoverflow.com/a/55828190/2000947 63のインストールに役立ちました。

1
Matt Rink

Lelandの答えは私には役に立ちましたが、私はステップ4と6を次のように変更しなければなりませんでした。

4)git checkout -B icu4c-62.1 575eb4b

6)Formula/icu4c.rbを再インストールします。

0
sgrwg

Php 7.3をインストールした後にも、このエラーが発生しました。私はそれを私の古いphpのバージョン(5.6と7.0、公式のリポジトリからではない)だけをアップグレードすることで解決しました。

メンテナは現在のicu4cに対して新しいphpバージョンをコンパイルしました。

私の場合、PHP 7は0.31から0.33になり、問題は解決しました。

最新のOS Xアップデート後にbrewを使用してicu4cをリ​​ンクすることは不可能であるようです。これは物事をより面白くします。私が見つけた唯一の解決策

  1. 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
  1. リンクライブラリ:
ln -s /usr/local/icu4c/62.1/lib/*.dylib /usr/local/include/
  1. DYLD_LIBRARY_PATH~/.bash_profileを設定します。
export DYLD_LIBRARY_PATH=/usr/local/include

それがあなたの時間の数時間を節約することを願っています。

0

古い(プリコンパイルされた)phpがリンクできる古いバージョンのicu4cをインストールするのではなく、古いphpを最新のライブラリにリンクするように再コンパイルすることをお勧めします。

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

これはphpを構築し、それを新しいライブラリにリンクします。 reinstallはなかなかうまくいきませんでした。インストール先フォルダがすでに存在するときに、新しいインストールが中断されました。

私の環境でもbrew link --force [email protected]をしました。

0
Jerry

ダウングレードするために、ソースから再コンパイルする必要がありました(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