首页 > 解决方案 > 在 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 上,所以 ruby​​installer 链接对我没有帮助。

安装 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?

标签: rubyrubygemsmacos-catalina

解决方案


几个小时后终于收到了。我按照这个说明做了一些改动

  1. 确保brew已安装。如果不 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

  2. 将外壳设置为zsh curl -L http://install.ohmyz.sh | sh

或者,设置 PATH

  1. eval "$(rbenv init -)"

  2. 安装 Ruby 版本管理器 brew update brew install rbenv ruby-build

  3. 安装 Ruby rbenv install 2.6# 我使用我的系统默认版本号,因为我不确定它是否与我的 OS X 系统版本混淆。 rbenv global 2.6 rbenv rehash

  4. 将其添加到您的 zsh echo 'eval "$(rbenv init -)"' >> ~/.zshrc source ~/.zshrc

那是为我做的。所有其他的东西,比如安装 Xcode,接受 Xcode 许可证,Xcode 命令行工具都没有这样做。


推荐阅读