忽略 ffi-1.13.1,因为它的扩展没有被构建。尝试: gem pristine ffi --version 1.13.1

20 xcode cocoapods

当我安装可可豆荚时,我收到了这条消息。下载的可可豆荚版本为 1.10.1。我试过使用他们给出的命令,但这出现了:

忽略 ffi-1.13.1,因为它的扩展没有被构建。尝试: gem pristine ffi --version 1.13.1 错误:执行 gem 时 ... (Gem::FilePermissionError) 您没有 /Library/Ruby/Gems/2.6.0 目录的写权限。

这是否意味着可用的最新版本是 1.13.1 但由于问题我无法使用它?如何解决?

Moh*_*man 105

这为我解决了这个问题

brew install cocoapods
Run Code Online (Sandbox Code Playgroud)

应该已经链接(正如 Raphael Pinel 指出的那样)但是如果你想确保运行

brew link --overwrite cocoapods
Run Code Online (Sandbox Code Playgroud)

  • 这实际上也为我解决了这个问题。 (2认同)
  • 我遇到了与 OP 完全相同的错误,当尝试 `gem install ffi` 时,我得到:`错误:执行 gem ... (Gem::FilePermissionError) 您没有 /Library/Ruby/ 的写入权限Gems/2.6.0 目录。'所以,按照你所说的那样做对我来说很有效,谢谢! (2认同)

小智 37

这对我有用:

sudo gem pristine ffi(这里不要写版本,因为它会修复所有版本的问题)

然后 :

pod install


Nic*_*ick 18

基本上,您需要按照警告消息的说明进行操作:通过运行gem pristine ffi --version 1.13.1. 但是,通常您没有系统写入权限来将 Gem 安装到指定目录中。

您可能只使用sudo, 即运行命令sudo gem pristine ffi --version 1.13.1并输入密码,但我想通常不建议这样做,因为它存在安全风险。

我是这样安装的:

gem install ffi --version 1.13.1 --user-install
Run Code Online (Sandbox Code Playgroud)

然后我不得不将安装路径添加到我的PATH变量中;就我而言,我将此行添加到我的~/.zshrc

export PATH=$HOME/.gem/ruby/2.6.0/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

我真的不是 Ruby 方面的专家,但这为我解决了这个问题。


小智 18

MacOS:文图拉 v13.0

更新 Ruby 版本非常有效。做了以下步骤。

$ brew install rbenv
Run Code Online (Sandbox Code Playgroud)

安装了最新的 ruby​​ 版本。

$ rbenv install 3.1.2
Run Code Online (Sandbox Code Playgroud)

将上述版本激活为全局默认版本。

$rbenv global 3.1.2
Run Code Online (Sandbox Code Playgroud)

安装 ffi

$ sudo gem install ffi --version 1.15.5 --user-install
Run Code Online (Sandbox Code Playgroud)


ras*_*tay 11

没有一个答案对我有用。因此,我想到卸载所有我在不知情的情况下安装的 ruby​​ 版本,只保留 Xcode 安装的版本。

brew uninstall --force ruby
Run Code Online (Sandbox Code Playgroud)

然后,卸载cocoapods

brew uninstall --force cocoapods
Run Code Online (Sandbox Code Playgroud)

我留下了 XCode 安装的 ruby​​。我跑:

gem pristine ffi --version 1.15.3
Run Code Online (Sandbox Code Playgroud)

我意识到其他版本已安装在~/.local

我删除了整个文件夹,因为它除了旧gem文件夹之外什么都没有

rm -rf ~/.local
Run Code Online (Sandbox Code Playgroud)

现在,重新安装 cocoapods:

brew install cocoapods
Run Code Online (Sandbox Code Playgroud)

尝试运行:

pod install
Run Code Online (Sandbox Code Playgroud)

或者

gem -v
Run Code Online (Sandbox Code Playgroud)

您不应该看到此错误。

当你安装了多个gem版本并且路径不正确时,通常会发生这种情况。

PS 我使用的是 macOS Monterey 12.1

  • 在尝试了所有其他修复之后,这个修复对我有用。我是这样做的:````brew uninstall cocoapods```,````brew uninstall ruby​​```,````brew install cocoapods```。之后错误就消失了。此错误首先出现在将 cocoa pods 更新到 1.14.2 的“brew升级”之后。我认为问题在于默认 ruby​​ 和 brew ruby​​ 之间存在一些混淆。 (2认同)

Yog*_*odo 9

就我而言(mbpm1 pro),我的其他项目很好,但是我朋友的一些项目(仅限Windows)我遇到了一些问题,我通过以下方式解决了

  1. arch -x86_64 sudo gem install ffi
  2. flutter clean安装一些 gem 后不要忘记清洁
  3. flutter pub get重新得到
  4. 现在运行(这些运行将自动运行 pod install )只需单击 main.dart ( vscode )


Dei*_*sch 6

我的问题是预安装的 ruby​​ 安装了这些扩展并导致了错误消息。运行以下命令查看所有已安装的软件包。所述命令还应该打印错误Ignoring ... because its extensions are not built。直接引用,/usr/bin/gem因为您可能通过brew安装了ruby,否则会调用它。

/usr/bin/gem list
Run Code Online (Sandbox Code Playgroud)

然后手动卸载默认 ruby​​ 的所有提到的扩展。

sudo /usr/bin/gem uninstall ffi    
Run Code Online (Sandbox Code Playgroud)