您的捆绑包已锁定为 ffi (1.11.0),但在您的 Gemfile 中列出的任何来源中都找不到该版本

Your bundle is locked to ffi (1.11.0), but that version could not be found in any of the sources listed in your Gemfile

启动 rails 服务器时出现此错误: 我试过 gem 安装、gem 更新、捆绑更新、捆绑安装。

Your bundle is locked to ffi (1.11.0), but that version could not be found in any of the sources listed in your Gemfile. If you haven't changed sources, that means the author of ffi
(1.11.0) has removed it. You'll need to update your bundle to a version other than ffi (1.11.0) that hasn't been removed in order to install.

你能帮忙吗?谢谢!

source 'https://rubygems.org'
ruby '2.5.3'

gem 'bootsnap', require: false
gem 'jbuilder', '~> 2.0'
gem 'pg', '~> 0.21'
gem 'puma'
gem 'shopify_app'
gem 'rails', '5.2.3'
gem 'redis'
gem 'devise'

gem 'autoprefixer-rails'
gem 'font-awesome-sass', '~> 5.6.1'
gem 'sassc-rails'
gem 'simple_form'
gem 'uglifier'
gem 'webpacker'

group :development do
  gem 'web-console', '>= 3.3.0'
end

group :development, :test do
  gem 'pry-byebug'
  gem 'pry-rails'
  gem 'listen', '~> 3.0.5'
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
  gem 'dotenv-rails'

end

这是我的 rake 文件:

require_relative 'config/application'

Rails.application.load_tasks

删除您Gemfile.lock

中提到的捆绑器版本

您遇到的问题是捆绑程序无法找到该版本的 ffi。您很可能最初是在创建项目或添加 gem 时安装它的。 ffi 版本 1.11.0 was pulled from RubyGems

运行 bundle update 在您的项目上获取最新版本,即今天的 1.11.1。这应该可以解决您的问题,因为当您接下来部署时,当 heroku 运行捆绑程序时,它将从 RubyGems 中获取该版本。

我遇到了同样的问题,bundle update ffi 帮我解决了。

编辑

在我的例子中,回购协议不受支持。我正在处理 多重依赖地狱 。我说多个是因为 Rainforest 项目有一个 RakeFile,它启动了多个其他 gems/projects/repos 且版本不兼容。至少我是这么理解的。有关更多信息,请参阅 here 贡献者说回购需要更新


我按照 CocoaPods dev environment setup 中的步骤进行操作,当我执行 rake bootstrap 时出现以下错误:

Your bundle is locked to codecov (0.1.14), but that version could not be found in any of the sources listed in your Gemfile. If you haven't changed sources, that
means the author of codecov (0.1.14) has removed it. You'll need to update your bundle to a version other than codecov (0.1.14) that hasn't been removed in order
to install.
rake aborted!
Command failed with status (7): [bundle install...]
/Users/honey/Rainforest/Cork/Rakefile:9:in `block in <top (required)>'

在我的 Rainforest 目录中,我尝试执行 bundle update codecov 但我得到:

Could not locate Gemfile

如果您注意到我的 Rainforest 目录的 子目录 中出现错误,即 /Rainforest/Cork.

所以我只是将目录更改为 /Users/honey/Rainforest/Cork,其中我有一个 Gemfile,然后只是 运行 bundle update codecov。然后我可以从我的 Rainforest 目录 运行 rake bootstrap


修复之后,我的开发环境仍然没有完全设置。文档说:

To verify that everything is set up, run: CocoaPods/bin/pod --help

当我这样做时,我收到了这个错误:

Could not find rake-10.5.0 in any of the sources

Run bundle install to install missing gems.

我做了一个 ls 并找到了以下项目:

CLAide
CocoaPods
Core
Cork
Molinillo
Nanaimo
README.md
RELEASING.md
Rakefile
Xcodeproj
claide-completion
cocoapods-acknowledgements
cocoapods-deintegrate
cocoapods-docs
cocoapods-downloader
cocoapods-plugins
cocoapods-search
cocoapods-stats
cocoapods-trunk
cocoapods-try
fourflusher
pod-template
shared

意味着我当前目录中没有Gemfile

我将目录更改为 CocoaPods 并在其中看到一个 Gemfile。从那里我只是 运行 bundle install 然后从我原来的 Rainforest 目录我能够 运行 CocoaPods/bin/pod --help 成功。

FWIW 当我 运行 bundle install 我收到以下警告:

Warning: the running version of Bundler (1.17.2) is older than the version that created the lockfile (1.17.3). We suggest you upgrade to the latest version of Bundler by running gem install bundler.

但这就是另一天的问题了。

我的理解是,对于像 CocoaPods 这样大的库,有多个 gems/projects 并且您收到的每个 error/warning 消息通常是关于一个 gem/project 而不是其他如果您更改目录并查看与该 gem/project 有关的文件,那么您将更好地了解发生了什么错误以及您的命令需要从何处 运行。

尝试以对话模式更新您的依赖项:

bundle update --conservative ffi

您还可以检查您的防火墙设置是否允许这些请求。就我而言,我有一个限制某些类型请求的物理防火墙。一旦我允许所有请求,bundle install 就能够正确地成功添加所有包。