我知道这个问题有很多实例。我已经完成了这些答案中的所有步骤,但四个小时后却一无所获。
我正在尝试在Catalina 10.15.7上安装gem并获得越来越受欢迎的
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:467:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
具有其他上下文
ERROR: Error installing ffi:
ERROR: Failed to build gem native extension.
current directory: /Users/bmanica/.chefdk/gem/ruby/2.4.0/gems/ffi-1.13.1/ext/ffi_c
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20200925-10024-qilctf.rb extconf.rb --with-cflags\=-save-temps\=obj\ -o\ tmp/a.o
通过调用安装时
gem install ffi -- --with-cflags="-save-temps=obj -o tmp/a.o"
绕过Catalina的严厉权限规则。
我刚下载了XCode和命令行工具:
> xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
> xcode-select -p
/Applications/Xcode.app/Contents/Developer
> ls /Applications/Xcode.app/Contents/Developer
Applications Library Makefiles Platforms Toolchains Tools usr
我已经通过至少接受了四次许可
sudo xcodebuild -license accept
我尝试过
sudo xcode-select -switch /
如Gem installation error: You have to install development tools first所建议。我不在Windows上,因此rubyinstaller链接对我没有帮助。
Can't Find ffi.h When Installing ffi ruby gem引用了我要安装的确切gem,但提示xcode-select --install
不是答案。
Developer tools issues when installing Ruby gems中的答案都没有帮助。我已经有brew install openssl
和brew install libffi
,并将它告诉我的变量导出到了:
> set | grep FLAGS
CPPFLAGS=-I/usr/local/opt/libffi/include
LDFLAGS=-L/usr/local/opt/libffi/lib
> set | grep PATH
PKG_CONFIG_PATH=/usr/local/opt/libffi/lib/pkgconfig
我还尝试了How to update Xcode from command line中的建议-xcode-select -r
不执行任何操作,xcode-select -s /Library/Developer/CommandLineTools
不执行任何操作,并且$ sudo rm -rf /Library/Developer/CommandLineTools
阻止了xcode-select --install
的工作,此外无论如何,我还是移动了它,然后从Apple的开发人员站点重新下载了命令行dmg软件包。还是同样的问题。
接下来我该怎么做才能安装此gem?
答案 0 :(得分:2)
几小时后终于拿到了。 我按照 this 说明进行了更改
确保安装了 time value
0 t2 200
1 t6 200
2 t8 200
。如果不
brew
将外壳设置为 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
zsh
或者,设置路径
curl -L http://install.ohmyz.sh | sh
安装 Ruby 版本管理器
eval "$(rbenv init -)"
brew update
安装 Ruby
brew install rbenv ruby-build
# 我使用了系统默认版本号,因为我不确定它是否与我的 OS X 系统版本混淆。
rbenv install 2.6
rbenv global 2.6
将其添加到您的 zsh
rbenv rehash
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
那是为我做的。所有其他的东西,比如安装 Xcode,接受 Xcode 许可证,Xcode 命令行工具没有做。
答案 1 :(得分:-1)
根据错误消息中的路径名,您正在尝试修改Apple的System Ruby。 这是不允许的。
Apple的System Ruby是专有的,供macOS内部使用和/或支持旧版应用程序。您一定不要使用它,并且您肯定一定不能修改它。修改它会否定整个“对遗留应用程序的支持”的事情。
Apple在the release notes for macOS 10.15 Catalina中有以下说法:
脚本语言运行时
弃用
- macOS中包含脚本语言运行时(例如Python,Ruby和Perl),以与旧版软件兼容。未来的macOS版本默认情况下将不包括脚本语言运行时,并且可能需要您安装其他软件包。如果您的软件依赖脚本语言,建议您在应用程序中捆绑运行时。 (49764202)
在macOS上安装Ruby的方法有很多,包括但不限于自己编译,下载预编译的二进制文件Homebrew,ruby-install,ruby-build,{{ 3}}。在macOS上管理Ruby安装的选项很多,包括但不限于RVM,chruby,asdf和RVM。
其中大多数具有一个额外的优势,即它们支持比Apple发行的版本更高的版本,更有趣的是,它们不仅支持YARV,还支持不同的实现。我个人最喜欢的是rbenv,当在TruffleRuby上运行时,对我而言,速度最高可以提高1000倍。
请不要使用System Ruby。