这是在运行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个小时以上的时间来使其运行。因此,不用说,任何帮助都会令人感激。我开始希望自己永远不要购买这款漂亮的闪亮新笔记本电脑。...
答案 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)