在OSX Catalina上安装Ruby开发工具以进行gem安装

19 浏览
0 Comments

在OSX Catalina上安装Ruby开发工具以进行gem安装

我知道这个问题有很多实例。我在这些答案中做了一切,但在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 gems时的开发工具问题中的任何答案都没有帮助;我已经安装了brew install opensslbrew 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的工作,此外我还移动了它并从苹果的开发人员网站重新下载了命令行DMG包。仍然是同样的问题。

接下来我应该尝试什么以安装这个gem?

admin 更改状态以发布 2023年5月21日
0
0 Comments

根据您的错误消息中的路径名,您正在尝试修改苹果的系统Ruby。这是不允许的。 \n苹果的系统Ruby专门用于macOS的内部使用和/或对遗留应用程序的支持。您不应使用它,而且绝对不应修改它。修改它将取消“支持遗留应用程序”的整个功能。 \n苹果本身在macOS 10.15 Catalina的发布说明中有如下声明: \n脚本语言运行时 \n已弃用 \nmacOS包括Python、Ruby和Perl等脚本语言运行时,以与遗留软件兼容。未来的macOS版本将不默认包括脚本语言运行时,并且可能需要您安装其他软件包。如果您的软件依赖于脚本语言,建议您将运行时捆绑在应用程序中。 (49764202) \n在macOS上安装Ruby有许多选择,包括但不限于自己编译它,下载预编译的二进制文件,Homebrew、ruby-install、ruby-build、RVM等。在macOS上管理Ruby安装有许多选择,包括但不限于chruby、asdf、rbenv和RVM。 \n大多数都具有以下优点:它们支持比苹果提供的更新版本,甚至更有趣的是,它们支持不仅仅是YARV的不同实现。我个人最喜欢的是TruffleRuby,它在GraalVM上运行时在不同的基准测试上可以快1000倍。 \n请不要使用系统Ruby。

0
0 Comments

经过几个小时,我终于搞定了。
我遵循了这个教程的指导,并稍作修改。

  1. 确保已安装brew。如果没有安装,运行以下命令:
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

  2. 将shell设置为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命令行工具之类的其他事情都没有用。

0