安装 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 本机扩展错误的主要内容,如果未能解决你的问题,请参考以下文章