安装 cocoapods 时出现 gem 本机扩展错误

Posted

技术标签:

【中文标题】安装 cocoapods 时出现 gem 本机扩展错误【英文标题】:gem native extension error while installing cocoapods 【发布时间】:2020-06-20 11:11:54 【问题描述】:

我在更换 SSD 后尝试在我的 MacBook Air 中重新安装 cocoapods,现在出现以下错误。

sudo gem install cocoapods

构建原生扩展。这可能需要一段时间... 错误:错误 安装 cocoapods:错误:无法构建 gem 原生扩展。

current directory: /Library/Ruby/Gems/2.3.0/gems/ffi-1.12.2/ext/ffi_c

/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20200308-27204-6l0a5q.rb extconf.rb mkmf.rb 找不到 ruby 的头文件在 /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h

extconf 失败,退出代码 1

Gem 文件将继续安装在 /Library/Ruby/Gems/2.3.0/gems/ffi-1.12.2 供检查。结果 登录到 /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/ffi-1.12.2/gem_make.out

【问题讨论】:

【参考方案1】:

打开终端

curl -L https://get.rvm.io | bash -s 稳定

重新打开终端

rvm 安装 ruby​​-2.6

rvm 使用 ruby​​-2.6.3

rvm --默认使用2.6.3

来自 MahmoudKhaled 的评论 link

【讨论】:

注意:访问 Apple 网站的开发者部分,并下载 CLT .dmg 存档。然后像安装任何其他应用程序一样安装它。否则 Brew 安装失败 这可行,但是将从 返回的任何内容通过管道传输到 bash 中存在安全风险。因为您基本上赋予网站执行 bash 中任何命令的权力,在本例中为“get.rvm.io”,这可能不是恶意的,但请注意这一点! 你不能安装 ruby​​ 2.6 并期望使用 ruby​​ 2.6.3,所以这些应该匹配。然而,这篇文章让我走上了正轨。一旦我安装了 ruby​​ 2.6,我就可以升级/安装 cocoapods 警告:Ruby Homebrew 安装程序现已弃用,并已在 Bash 中重写。请迁移到以下命令:/bin/bash -c "$(curl -fsSL raw.githubusercontent.com/Homebrew/install/master/install.sh)" 我在使用rbenv 安装特定的Ruby 版本时也遇到了这个问题。如上所述卸载rbenv 并使用rvm 后,一切正常。谢谢!现在将继续使用rvm 而不是rbenv【参考方案2】:

对我来说,它是通过安装以前版本的 cocoapods 来工作的

sudo gem install cocoapods -v 1.8.4

希望对你有帮助

【讨论】:

【参考方案3】:

可以通过将 ruby​​ 更新到它的最新版本来修复此错误,2.3.0 版存在该问题。

您可以按照以下步骤将 ruby​​ 版本更新到最新版本。

    检查 Mac 上安装的 Ruby 版本

打开终端并输入:

红宝石-v

    安装 Ruby 版本管理器 rvm

在终端中,

curl -L https://get.rvm.io | bash -s stable

此命令完成运行后,您可能需要重新启动终端才能识别 rvm。

    安装最新版本的 Ruby

    rvm install ruby​​-[版本]

在我的情况下是

rvm install ruby-2.7.1

这需要一段时间才能运行,因为它必须安装很多依赖项并多次征求我的许可。

    将最新版本的 Ruby 设置为您要使用的版本

您现在应该正在运行最新版本的 Ruby。您可以像以前一样使用 ruby​​ -v 命令进行检查,如第 1 步。如果您发现不是,您可以手动设置。在终端类型中:

rvm use ruby-2.7.1

如果您想将此最新版本的 Ruby 设置为默认版本,在终端类型中:

rvm --default use 2.7.1

完成后,您可以使用以下命令来升级 cocoapods

sudo gem install cocoapods

【讨论】:

【参考方案4】:

更新后您可能没有在 Xcode > Preference > Location 中选择命令行工具。

sudo gem install cocoapods 命令在 Xcode 中选择工具后生效。

【讨论】:

【参考方案5】:

打开终端

xcode-select --install

重新打开终端

sudo gem install cocoapods

就是这样!

【讨论】:

这完美地工作,试图让可可豆荚在 10.13 上使用 Xcode 10.1 运行,而在其他答案中没有任何其他自定义 ruby​​ 升级。谢谢!【参考方案6】:

错误:安装 cocoapods 时出现 gem 原生扩展错误

答案:按照以下 3 步操作问题将得到解决。

第 1 步:打开 XCode 转到以下路径

XCode > 首选项 > 位置 > 命令行工具(select-Xcode)

第 2 步:打开终端 - 粘贴以下命令

curl -L https://get.rvm.io | bash -s 稳定

重新打开终端 - 粘贴以下命令

注意:需要 3-5 分钟

rvm 安装 ruby​​-2.6

rvm 使用 ruby​​-2.6.3

rvm --默认使用2.6.3

第三步:

打开终端 - 在命令下方键入

sudo gem 安装 cocoapods

现在不会出现安装 cocoapods 时 gem 原生扩展错误

问题已解决。

【讨论】:

【参考方案7】:

我遇到了同样的错误,我无法升级 cocopods,问题是自制软件无法更新。 我注意到,当尝试使用 nvm 安装新的 ruby​​ 版本时,它失败了,因为它试图运行 homebrew update。所以看起来 nvm 和 homebrew 是有联系的

我按照这里的说明进行操作:https://github.com/Homebrew/brew/issues/9420

基本上 brew update(失败了)

git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow

git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask fetch --unshallow

brew update(成功)

brew install cocoapods

它并没有解决错误,而是以另一种方式升级了cocoapods。

【讨论】:

【参考方案8】:

enter image description here

我之前用过所有的代码并出现在那里,当我试图运行颤振医生的时候......

CocoaPods 1.8.4 过期(推荐 1.10.0)

我刚改成:sudo gem install cocoapods -v 1.10.0

显然安装了 cocoapods。

【讨论】:

【参考方案9】:

冲泡清理 -d -v brew install /usr/local/bin cocoapods

【讨论】:

以上是关于安装 cocoapods 时出现 gem 本机扩展错误的主要内容,如果未能解决你的问题,请参考以下文章

更新 cocoapods 出现如下错误:

安装 JSON gem 的本机扩展错误

puma gem - 无法构建 gem 原生扩展

无法安装 gem - 无法构建 gem 本机扩展 - 无法加载此类文件 - mkmf (LoadError)

安装 gem 时出现的问题

使用“gem pq”安装 PostgreSQL gem 失败并出现错误:无法构建 gem 本机扩展