更新 Gemfile.lock 失败

Updating Gemfile.lock fails

我在 Gemfile 中更新了一个 gem 版本,所以我正在尝试更新 Gemfile.lock。我运行:

$ bundle update
Fetching gem metadata from https://rubygems.org/......
Fetching version metadata from https://rubygems.org/..
Fetching dependency metadata from https://rubygems.org/.
Resolving dependencies.......
Fetching rake 10.5.0
Fetching i18n 0.8.1
Fetching minitest 5.7.0
Fetching thread_safe 0.3.6
....

尽管似乎已经获取了以下错误(请参阅上面的输出),但仍出现以下错误:

Bundler::GemspecError: Could not read gem at /usr/lib/ruby/gems/2.4.0/cache/rake-10.5.0.gem. It may be corrupted.
An error occurred while installing rake (10.5.0), and Bundler cannot continue.
Make sure that `gem install rake -v '10.5.0'` succeeds before bundling.

/usr/lib/ruby/gems/2.4.0/cache/下没有这样的文件。缓存目录可写(777)。

如果我 运行 gem install rake -v '10.5.0' 它工作正常。但是我真的需要手动安装 gems(其他包重复错误)吗?如果只是 运行 bundle install 而没有更新 gems.

我就不会收到这样的错误

原来在 cache 目录 (/usr/lib/ruby/gems/2.4.0/cache/) 上设置写权限是不够的。您必须为父目录设置写入权限 (/usr/lib/ruby/gems/2.4.0/)。出于某种原因,bundle update 不会写入 cache,除非您这样做,即使它不会将任何内容写入与 cache.[=16= 处于同一级别的任何其他目录。 ]