我的软件包安装无法在我的mac上安装ffi,即使已经安装了ffi gem(正确的版本1.0.11)。运行“bundle install”时出现以下错误:
Installing ffi (1.0.11) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. ... creating Makefile make Configuring libffi for i386 env: --disable-static: No such file or directory make[1]: *** No targets specified and no makefile found. Stop. Configuring libffi for x86_64 env: --disable-static: No such file or directory make[1]: *** No targets specified and no makefile found. Stop. make: *** ["/mypath/clients/myapp/rails=2.3.5/ruby/1.8/gems/ffi-1.0.11/ext/ffi_c/libffi"/.libs/libffi_convenience.a] Error 2 An error occured while installing ffi (1.0.11), and Bundler cannot continue. Make sure that `gem install ffi -v '1.0.11'` succeeds before bundling.
我试过
gem install ffi -v '1.0.11'
这很好。
然后我查看失败的Makefile并运行
make -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认识到引号中的“=”不适用于环境变量吗?
非常感谢。
答案 0 :(得分:2)
我也遇到了这个问题,当时我清理了我安装的所有宝石,而不是再做捆绑,它正在工作。
我不确定它是否适合您,但您仍然可以尝试。
答案 1 :(得分:1)
我有同样的问题(Mac OS X Lion)。 就我而言,在升级到Mac OS X Lion之后,我丢失了我的gcc命令行工具。
这是如何安装命令行工具; 1.安装Xcode 4 2.Xcode - >偏好 - >下载标签 - >命令行工具
安装完成后,我的案子解决了。