如何解决“安装rake(10.5.0)时发生错误,并且Bundler无法继续。”错误

时间:2019-06-06 03:07:21

标签: ruby-on-rails ruby rubygems

这是在运行ubuntu 14.04的虚拟盒子中发生的。 (主机是ubuntu 18.04)我正在尝试让ruby 2.2.5运行rails 3.2.22.5。到目前为止,我已经尝试使用rbenv,rvm和从源代码安装ruby,它们都在单独的virtualbox vm上,都以相同的错误结束...

我运行bundle install会给我这个错误,

Fetching gem metadata from http://rubygems.org/.............
Fetching rake 10.5.0
Bundler::GemspecError: Could not read gem at /home/vagrant/rg/vendor/bundle/ruby/2.2.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' --source 'http://rubygems.org/'` succeeds before bundling.

In Gemfile:
  auto_tagger was resolved to 0.2.10, which depends on
    capistrano was resolved to 3.4.1, which depends on
     rake

好的,那应该很容易解决,对吧? 我运行gem install rake -v '10.5.0' --source 'http://rubygems.org/'

Successfully installed rake-10.5.0
Parsing documentation for rake-10.5.0
Done installing documentation for rake after 0 seconds
1 gem installed

我可以用rake --version

进行检查
  

rake,版本10.5.0

是的,我清除了缓存文件,结果是这样:

Fetching gem metadata from http://rubygems.org/.............
Fetching rake 10.5.0
Retrying download gem from http://rubygems.org/ due to error (2/4): Errno::ENOLCK No locks available @ rb_file_flock - /home/vagrant/rg/vendor/bundle/ruby/2.2.0/cache/rake-10.5.0.gemBundler::GemspecError: Could not read gem at /home/vagrant/rg/vendor/bundle/ruby/2.2.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' --source 'http://rubygems.org/'` succeeds before bundling.

这是所有内容的版本

Ruby version: 2.2.5
Bundler version: 1.17.3
RubyGems version: 2.4.5.1
Rake version: 10.5.0

我想指出这是在一台新机器上。我从旧计算机上打包了无业游民的盒子,然后转移到新计算机上,然后运行bundle exec rails s,并意识到并没有安装Rails,即使我的所有文件夹和文件都成功了。获取环境设置,从而在3个单独的vms上尝试rbenv,rvm并从源代码进行尝试。

在过去3天里,我已经尝试了所有可以在网上找到的内容,并且花了15个小时以上的时间来使其运行。因此,不用说,任何帮助都会令人感激。我开始希望自己永远不要购买这款漂亮的闪亮新笔记本电脑。...

2 个答案:

答案 0 :(得分:0)

您的上一条清单

Retrying download gem from http://rubygems.org/ due to error (2/4): Errno::ENOLCK No locks available

,这将建议您使用的文件系统不提供锁定。您需要锁定以防止系统中的两个进程同时访问同一文件。

请尝试运行此

touch foo
flock foo echo test1 & flock foo test2
rm foo

如果成功-对您有好处,我们可以尝试在其他地方查找问题。但是,如果失败了,您唯一的(可能是...)解决方案是使文件系统具有文件锁定机制(这可能与流浪汉有关,我对此没有太多经验,但是可能存在问题)如何安装)。

答案 1 :(得分:0)

最终问题是由于使用nfs进行安装而导致的锁定所致。

如果您在使用无业游民时遇到此问题,请检查此答案from another thread.

它为我修复了锁定错误。