6

当我尝试进行捆绑安装时,我的 gem_path 和 gem_home 指向 /usr/local/rvm/gems/ 我没有写访问权限,并且由于权限无效而失败。因此,我已将两条路径都更改为我确实具有写访问权限的本地目录。

这样做时,我进行捆绑安装,我得到:

bruno@test6:~$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Fetching gem metadata from https://rubygems.org/..

Bundler::GemspecError: Could not read gem at   /afs/varda.io/user/b/br/bruno/test6/cache/rake-10.1.0.gem. It may be corrupted.
An error occurred while installing rake (10.1.0), and Bundler cannot continue.
Make sure that `gem install rake -v '10.1.0'` succeeds before bundling.

好吧,如果我进行 gem 安装,它工作得很好。

但是 bundle 是行不通的;即使尝试删除它抱怨的缓存文件夹。

我确实尝试过“bundle install --no-cache”,但它以同样的方式失败。(bundle install --deployment 也可以正常工作)我如何让 bundle install 工作?

我花了很多时间,如果有人能提供任何指导,我将不胜感激!

4

5 回答 5

19

通过删除缓存文件并重新运行捆绑安装来修复它。

rm -rf <location_of_cache>。在你的情况下:

rm -rf /afs/varda.io/user/b/br/bruno/test6/cache
于 2013-09-17T10:36:38.443 回答
15

好的,首先,您可以通过使用 rvm(用户安装)轻松解决所有这些问题,请参阅http://rvm.io,如果这不是一个选项,您可以尝试使用项目特定的 gem 路径。例如,我有以下捆绑器配置文件(~/.bundle/config

---
BUNDLE_PATH: .bundle
BUNDLE_DISABLE_SHARED_GEMS: "1"

这会导致 bundler 将所有 gem 安装在一个.bundle子目录中(在您的项目文件夹中,您运行的位置bundle install)。现在,如果你记得使用bundle exec你的垃圾箱(例如 cap(istrano)),你很好。

如果您以某种方式搞砸了您的捆绑程序/缓存,请尝试删除该.bundle文件夹(在您的项目文件夹中)

于 2013-09-18T14:55:17.380 回答
1

rvm reinstall all为我工作。

在你这样做之前,我会尝试

gem update --system
gem pristine --all --no-extensions

请注意,这rvm reinstall all需要很长时间才能完成...

于 2013-09-12T17:16:35.227 回答
1

如果可行,我建议您安装自己的 in 副本,rvm这样~/.rvm您就不会被系统绑定。尝试采用混合系统+用户的方法可能会在以后导致更多的麻烦。

或者,如果您对替代解决方案持开放态度,那么您就是rbenv一个更精简、更清洁的 ruby​​ 经理。

于 2013-09-12T20:24:13.513 回答
0

尝试告诉bundler它必须使用哪个文件夹,例如bundle install --path <myfolder>or bundle install --path gems

请注意,我尚未对此进行测试,但看起来很有希望,请为我们发布结果。

于 2013-09-18T14:01:12.703 回答