ffi gem (適切なバージョン 1.0.11) が正常にインストールされているにもかかわらず、バンドルのインストールで ffi を Mac にインストールできませんでした。「bundle install」を実行すると、次のエラーが発生しました。
ネイティブ拡張を使用した ffi (1.0.11) のインストール Gem::Installer::ExtensionBuildError: エラー: gem ネイティブ拡張のビルドに失敗しました。 ... Makefile の作成 作る i386 用の libffi の構成 env: --disable-static: そのようなファイルまたはディレクトリはありません make[1]: *** ターゲットが指定されておらず、makefile が見つかりません。止まる。 x86_64 用の libffi の構成 env: --disable-static: そのようなファイルまたはディレクトリはありません make[1]: *** ターゲットが指定されておらず、makefile が見つかりません。止まる。 make: *** ["/mypath/clients/myapp/rails=2.3.5/ruby/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi"/.libs/libffi_convenience.a] エラー 2 ffi (1.0.11) のインストール中にエラーが発生し、Bundler を続行できません。 バンドルする前に、「gem install ffi -v '1.0.11」が成功することを確認してください。
私は試した
gem install ffi -v '1.0.11'
それはうまくいきました。次に、失敗した Makefile を調べて実行しました
-n を作る何が起こったのかを確認します。次のコマンドで make が失敗したことが判明しました。
cd "/mypath/clients/myapp/rails=2.3.5/ruby/1.8/gems/ffi-1.0.11/ext/ffi_c"/libffi-$arch && env CC="gcc" CFLAGS="-arch $arch " LDFLAGS="-arch $arch" "/mypath/clients/myapp/rails=2.3.5/ruby/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi"/configure --disable-static -- with-pic=yes --disable-dependency-tracking --host=$arch-apple-darwin > /dev/null;
具体的には、失敗しました
env CC=" gcc" CFLAGS="-arch $arch " LDFLAGS="-arch $arch" "/mypath/clients/myapp/rails=2.3.5/ruby/1.8/gems/ffi-1.0.11/ext/ ffi_c/libffi"/configure --disable-static --with-pic=yes --disable-dependency-tracking --host=$arch-apple-darwin > /dev/null;
どうやらenvコマンドはその部分を考えています
"/mypath/clients/myapp/rails=2.3.5/ruby/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi"/configureパスに「=」が含まれているため、環境変数を設定することです。「=」を手動で「_」に変更すると、env コマンドは問題なく動作します。ただし、このパスは「bundle install」によって自動生成されたもので、以前は機能していました。
やってみました
bundle install --path=rails_2.3.5そしてそれは通り抜けました。しかし、パス rails=2.3.5 が過去にどのように機能したかはまだ疑問です。
Mac の設定を誤って変更してしまったのでしょうか。引用符で囲まれた "=" が環境変数用ではないことを env に認識させることはできますか?
どうもありがとう。