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

Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1

当我安装 cocoa pods 时,我收到了这条消息。下载的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,但我因为问题无法使用它?如何解决?

“在尝试使用 pods - matt 之前,您需要安装 rbenv 并控制您的 Ruby”

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

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

我是这样安装的:

gem install ffi --version 1.13.1 --user-install

然后我必须将安装路径添加到我的 PATH 变量中;在我的例子中,我将这一行添加到我的 ~/.zshrc:

export PATH=$HOME/.gem/ruby/2.6.0/bin:$PATH

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

这解决了我的问题

brew install cocoapods

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

brew link --overwrite cocoapods

在装有 Rosetta 和 运行

的 Mac M1 上启动终端
pod update

在蒙特雷。我这样做了:

pod install --repo-update
.....Ignoring ffi-1.15.3 because its extensions are not built. Try: gem pristine ffi --version 1.15.3

% brew install cocoapods
% brew link --overwrite cocoapods
% brew outdated
% brew upgrade

但是,同样的问题。

% pod install --repo-update
result... Ignoring ffi-1.15.3 because its extensions are not built. Try: gem pristine ffi --version 1.15.3

我没有权限在该目录中安装它。

None 个答案对我有用。所以,我想卸载我在不知不觉中安装的所有版本的 ruby,只保留 Xcode.

安装的版本。
brew uninstall --force ruby

然后,卸载cocoapods

brew uninstall --force cocoapods

我只剩下 XCode 安装的 ruby。我运行:

gem pristine ffi --version 1.15.3

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

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

rm -rf ~/.local

现在,重新安装 cocoapods:

brew install cocoapods

尝试 运行:

pod install

gem -v

你不应该看到这个错误。

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

P.S 我正在使用 macOS Monterey 12.1

在我的例子中,路径不匹配,这个命令帮助了我:

rvm get stable --auto-dotfiles

还要检查你 .zshrc 文件中的路径顺序

f.e.

# Ruby
export PATH="~/.rvm/gems/ruby-2.6.0/bin:$PATH"
export PATH="/usr/local/opt/ruby/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/ruby/lib"
export CPPFLAGS="-I/usr/local/opt/ruby/include"
export PKG_CONFIG_PATH="/usr/local/opt/ruby/lib/pkgconfig"

# User local
export PATH="/usr/local/bin:$PATH"

我的问题是预安装的 ruby 安装了这些扩展并导致出现错误消息。做如下 查看所有已安装的消息,还应打印 Ignoring ... because its extensions are not built。直接引用 /usr/bin/gem,因为您可能通过 brew 安装了 ruby,否则将被调用。

/usr/bin/gem list

然后手动卸载所有提及的默认扩展 ruby。对导致该消息的所有扩展执行此操作。

sudo /usr/bin/gem uninstall ffi    

就我而言 (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 )

这对我有用:

sudo gem pristine ffi (don't write a version here, because it will fix the problem of all versions)

那么,

pod install