当我安装可可豆荚时,我收到了这条消息。下载的可可豆荚版本为 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)
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
就我而言(mbpm1 pro),我的其他项目很好,但是我朋友的一些项目(仅限Windows)我遇到了一些问题,我通过以下方式解决了
arch -x86_64 sudo gem install ffiflutter clean安装一些 gem 后不要忘记清洁flutter pub get重新得到我的问题是预安装的 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)