1

我有一个类似的问题:无效的规范缓存文件 ,但它没有答案。

我们的 rails 应用最近从 ruby​​ 2.1.2 升级到 2.1.5

当我将它下载到我的笔记本电脑上(桌面工作正常)时,它需要 rvm install 2.1.5,然后为 2.1.5 创建一个新的 gemset

我尝试运行 bundle 并且未安装 bundler,所以我尝试gem install bundler了它并响应以下错误消息:

ERROR:  While executing gem ... (Gem::Exception)
    Invalid spec cache file in /my_dir/.gem/specs/api.rubygems.org%443/latest_specs.4.8

在检查该目录时,我发现有一个specs.4.8文件但没有latest_specs.4.8文件

我尝试过的事情:

  • 我删除并重新创建了 gemset,同样的问题。
  • 我跑了gem update
  • 我吹走了/my_dir/.gem/specs又跑了gem update
  • 我跑了gem update --system
  • 我重新安装了 ruby​​ 2.1.5 并再次完成了这一切......

当我将 ruby​​-version 改回 2.1.2 并使用rvm use 2.1.2; bundle它时,它没有问题(但捆绑器已经存在于该 gemset 中)。

宝石环境:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.2
  - RUBY VERSION: 2.1.5 (2014-11-13 patchlevel 273) [x86_64-darwin10.0]
  - INSTALLATION DIRECTORY: /my_dir/.rvm/gems/ruby-2.1.5
  - RUBY EXECUTABLE: /my_dir/.rvm/rubies/ruby-2.1.5/bin/ruby
  - EXECUTABLE DIRECTORY: /my_dir/.rvm/gems/ruby-2.1.5/bin
  - SPEC CACHE DIRECTORY: /my_dor/.gem/specs
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-10
  - GEM PATHS:
     - /my_dir/.rvm/gems/ruby-2.1.5
     - /my_dir/.rvm/gems/ruby-2.1.5@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
4

2 回答 2

3

尝试这个:

gem sources --clear-all
gem sources --update

如果这不起作用,请在此处查看我的更长答案:损坏的红宝石宝石系统

于 2015-02-10T01:44:29.610 回答
0

最终我放弃并重新安装了 ruby​​ 2.1.5 并删除了 gemset。

然后事实证明我可以安装而无需先创建一个 gemset。

就在rvm use 2.1.5那时gem install bundlerbundle

所以:不知道出了什么问题(并且仍然会鼓励其他人回答解释),但这对我有用。

于 2015-02-09T04:10:36.393 回答