在 OSX Catalina 上安装用于 gem 安装的 Ruby 开发工具

2023-11-21

我知道这个问题有很多例子。我已经完成了这些答案中的所有内容,但 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 /

as Gem安装错误:必须先安装开发工具建议。我不在 Windows 上,所以 ruby​​installer 链接对我没有帮助。

安装 ffi ruby​​ gem 时找不到 ffi.h引用了我正在尝试安装的确切 gem,但如所示xcode-select --install不是答案。

中没有任何答案安装 Ruby gems 时的开发人员工具问题也有帮助;我已经brew install openssl and 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工作,另外我还是移动了它并从苹果的开发者网站重新下载了命令行 dmg 包。还是同样的问题。

接下来我该怎么做才能安装这个 gem?


几个小时后终于拿到了。 我跟着this指令,稍微改变一下

  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

或者,设置路径

  1. eval "$(rbenv init -)"

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

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

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

那对我来说是这样的。所有其他的事情,比如安装 Xcode、接受 Xcode 许可证,Xcode 命令行工具都没有做。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 OSX Catalina 上安装用于 gem 安装的 Ruby 开发工具 的相关文章

随机推荐

  • UML 类图的文本表示 - DSL for UML

    UML 类图是描述类及其关系的标准图形表示法 有没有standard文本符号 DSL 来描述相同吗 不要说 XMI 或 EMF 我认为您可以使用 Corba IDL 并使用类接口来做到这一点 但这在 Corba 方面有点太多了 您可以使用
  • 您可以使用 loc 选择一系列列以及该范围之外的列吗?

    假设我想从数据框中选择一系列列 将它们称为 column 1 到 column 60 我知道我可以这样使用 loc df loc column 1 column 60 这将为我提供第 1 60 列中的所有行 但是如果我想要该范围的列加上 c
  • 当选择下拉列表发生onchange(从数据库填充)时,如何自动提交Rails formhelper

    我的视图中有一个表单 其中有两个下拉菜单 两者都从数据库表填充 我想在任一下拉菜单上发生 onchange 事件时自动提交表单 div class act div
  • IE6 + IE7 CSS 溢出问题:隐藏; - 位置:相对;组合

    因此 我为主页创建了一个滑块 使用 jQuery 滑动一些带有标题和预告文本的图像 一切正常 我去检查 IE 发现 IE 6 和 7 完全杀死了我的滑块 css 我不明白为什么 但由于某种原因 我无法使用 Overflow hidden 隐
  • 如何知道 SoundPlayer 何时完成播放声音

    我使用以下代码在内存中动态创建频率音并异步播放该音 public static void PlayTone UInt16 frequency int msDuration UInt16 volume 16383 using var mStr
  • 购物车,可以使用Devise的会话功能吗?

    我正在编写一个电子商务网站 我需要实现购物车功能 我希望客户能够在不事先注册的情况下将产品添加到购物车 所以我想我可以通过会话来实现这一点 这可以在 Devise gem 中完成吗 还是我必须实现我自己的会话模型才能使其工作 您需要处理自己
  • SQL Server 2005:将 varchar 值“1.23E-4”转换为十进制失败

    declare a varchar 40 set a 1 23e 4 declare b decimal 27 12 if isnumeric a 1 begin select b cast a as decimal 27 12 end e
  • data.frame 中的唯一/排序

    我有一个像这样的数据框 x c 01 01 01 22 22 03 03 03 35 35 y c f f f m m m m m f f df data frame spn x sex y 似乎 spn sex 1 01 f 2 01 f
  • Java 中的两个数组声明有什么区别? [复制]

    这个问题在这里已经有答案了 在我的书中 他们一直在以下两种方法之间切换声明数组的方式 int array1 1 2 3 int array2 1 2 3 我想知道两个括号的位置有什么区别 为什么当我将括号放在名称后面 例如在数组 1 中 时
  • Android - 从代码中引用当前应用的主题中的属性值

    Android 开发指南explains如何使用问号 而不是 at 来引用当前应用的主题中的属性值 有谁知道如何从代码中做到这一点 例如在定制组件中 在 XML 中 它看起来像这样 style header background 以编程方式
  • Django 自定义左外连接

    我用这个查询了 Django 模型 news News objects filter Q likes user isnull True Q likes user user extra select is liked NewsLikes me
  • 使用 PHP 将 CSV 转换为 JSON?

    我需要转换一个CSV文件到JSON在服务器上使用 PHP 我正在使用这个有效的脚本 function csvToJSON csv rows explode n csv i 0 len count rows json n data forea
  • 有办法防止 cookie 被盗吗?

    在 Web 2 0 应用程序中 许多用户通常希望保持登录状态 记住我 标志 而另一方面 他们的 cookie 可以访问非常私密的数据 有没有办法防止有人直接从计算机或通过嗅探窃取 cookie 从而使用 cookie 来访问用户的数据 始终
  • “in”运算符或 obj.hasOwnProperty(prop) 的 Big O 表示法的效率是多少

    Mozilla的网站上清楚地描述了hasOwnProperty 和in操作员 但是 它没有提供有关其效率的任何实施细节 我怀疑他们会是O 1 恒定时间 但希望看到任何可能存在的参考或测试 将我的评论变成答案 hasOwnProperty s
  • 使用自己的应用程序打开自定义文件[重复]

    这个问题在这里已经有答案了 可能的重复 如何将文件扩展名与 C 中的当前可执行文件关联 所以 我正在申请学校 最终项目 在这个应用程序中 我有一个Project 班级 这可以保存为自定义文件 例如测试 gpr gpr 是扩展名 如何让 Wi
  • 将静态参数传递给类

    据我所知 你不能将参数传递给 C 中的静态构造函数 但是 在创建类的实例之前 我确实需要传递两个参数并将它们分配给静态字段 我该怎么办 这可能是对 工厂方法的调用 class Foo private int bar private stat
  • Python场景变化检测

    我想知道是否有人有Python和视频处理的经验 本质上 我想知道是否有任何库可以让我在视频中进行场景检测 如果没有 是否有任何可以让我将视频分成一系列帧并让我处理像素 Thanks OpenCV有 Python 绑定 我不认为它有任何内置的
  • 如果我在 PHP 中执行 print_r ,它会以垃圾形式打印数组

    如何以树状格式打印数组 使其更易于阅读 Try pre pre 它将提供 HTML 的空白策略修剪掉的正确树结构
  • Rails 当前页面?当方法为 POST 时“失败”

    我有一个非常简单的问题 我有一页报告 每个报告都有自己的选项卡 我在用着current page 以确定应突出显示哪个选项卡 当我提交任何报告时 current page 似乎不再起作用 显然是因为请求方法是POST 这是预期的行为吗cur
  • 在 OSX Catalina 上安装用于 gem 安装的 Ruby 开发工具

    我知道这个问题有很多例子 我已经完成了这些答案中的所有内容 但 4 小时后却一无所获 我正在尝试在 Catalina 10 15 7 上安装 gem 并获得非常流行的 System Library Frameworks Ruby frame