ruby - 在 OSX Catalina 上安装用于 gem 安装的 Ruby 开发工具
问题描述
我知道这个问题有很多例子。我已经完成了这些答案中的所有工作,但 4 小时后却一无所获。
我正在尝试在 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 安装错误:您必须首先安装开发工具。我不在 Windows 上,所以 rubyinstaller 链接对我没有帮助。
安装 ffi ruby gem 时找不到 ffi.h引用了我尝试安装的确切 gem,但如所示xcode-select --install
不是答案。
安装 Ruby gem 时开发人员工具问题中的任何答案都没有帮助;我已经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
我还尝试了如何从命令行更新 Xcode中的建议-xcode-select -r
什么都不做,xcode-select -s /Library/Developer/CommandLineTools
什么都不做,并且$ sudo rm -rf /Library/Developer/CommandLineTools
阻止xcode-select --install
工作,另外我还是移动了它并从 Apple 的开发人员网站重新下载了命令行 dmg 包。还是一样的问题。
我接下来要尝试什么来安装这个 gem?
解决方案
几个小时后终于收到了。我按照这个说明做了一些改动
确保
brew
已安装。如果不/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
将外壳设置为
zsh
curl -L http://install.ohmyz.sh | sh
或者,设置 PATH
eval "$(rbenv init -)"
安装 Ruby 版本管理器
brew update
brew install rbenv ruby-build
安装 Ruby
rbenv install 2.6
# 我使用我的系统默认版本号,因为我不确定它是否与我的 OS X 系统版本混淆。rbenv global 2.6
rbenv rehash
将其添加到您的 zsh
echo 'eval "$(rbenv init -)"' >> ~/.zshrc
source ~/.zshrc
那是为我做的。所有其他的东西,比如安装 Xcode,接受 Xcode 许可证,Xcode 命令行工具都没有这样做。
推荐阅读
- ssl - 访问 XamarinForms 中的自签名 X509 证书以用于与 Mosquitto 代理的 mqtt TLS 连接
- python - 如何在 Python 中使用正则表达式解析排名前 250 的电影标题
- angular - Angular Forms,构建对象数组
- c# - 如果我在蓝牙设备重命名后发现蓝牙发现会给出旧名称
- sql - 使用另一个查询的结果从查询中获取数据,这可能吗
- java - 如何在将地图的值与另一张地图的值进行比较时将其设为空白?
- python - 在数据框中的特定小时/分钟时间之间选择的问题
- c++ - 为什么有关静态常量的链接器错误取决于优化级别?
- c++ - 另一个结构内结构的运算符重载会产生错误
- css - 有一个 Angular 动态表单生成器引导 CSS 问题