我在我的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,我就不会得到这样的错误。
发布于 2017-07-06 09:10:28
结果表明,仅在cache目录(/usr/lib/ruby/gems/2.4.0/cache/)上设置写权限是不够的。必须为父目录(/usr/lib/ruby/gems/2.4.0/)设置写权限。由于某些原因,bundle update不会写入cache,除非您这样做,即使它没有在与cache相同的级别上向任何其他目录写入任何内容。
https://stackoverflow.com/questions/44928595
复制相似问题