在任何来源中都找不到并发红宝石1.0.5(Bundler :: GemNotFound)

时间:2018-08-13 14:28:41

标签: ruby docker rubygems docker-compose bundler

我已经在Google上搜索了很多,但没有发现对我的情况有用的任何东西。

$ docker-compose up abc

在日志中产生以下内容:

/usr/lib/ruby/vendor_ruby/bundler/spec_set.rb:92:in `block in materialize': Could not find concurrent-ruby-1.0.5 in any of the sources (Bundler::GemNotFound)
   from /usr/lib/ruby/vendor_ruby/bundler/spec_set.rb:85:in `map!'
   from /usr/lib/ruby/vendor_ruby/bundler/spec_set.rb:85:in `materialize'
   from /usr/lib/ruby/vendor_ruby/bundler/definition.rb:132:in `specs'
   from /usr/lib/ruby/vendor_ruby/bundler/definition.rb:177:in `specs_for'
   from /usr/lib/ruby/vendor_ruby/bundler/definition.rb:166:in `requested_specs'
   from /usr/lib/ruby/vendor_ruby/bundler/environment.rb:18:in `requested_specs'
   from /usr/lib/ruby/vendor_ruby/bundler/runtime.rb:13:in `setup'
   from /usr/lib/ruby/vendor_ruby/bundler.rb:121:in `setup'
   from /usr/lib/ruby/vendor_ruby/bundler/setup.rb:17:in `<top (required)>'
   from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
   from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'

我的docker-compose.yml文件中的相关位: command: bundle exec rails server

concurrent-ruby最确定地安装在需要的位置。我已经在Docker中运行bundle install了很多次,并且尝试将gem install concurrent-ruby -v 1.0.5添加到我的docker-compose命令中,并且安装得很好,然后仍然抱怨找不到它。宝石。我尝试将bundle install直接添加到我的docker-compose命令中,但由于涉及docker-compose和git的一些已知问题(我正在使用两个内部gem)而失败。 [编辑:https://github.com/docker/compose/issues/2856#issuecomment-236625662]

在我升级了一些Ruby gem之前,一切工作都很好,但是我不确定为什么或如何修复它。

5 个答案:

答案 0 :(得分:7)

在Docker之外,我遇到了类似的问题。

我删除了Gemfile.lock,然后运行bundle

问题消失了。

您的里程可能会有所不同。

答案 1 :(得分:1)

我在docker-compose上遇到了同样的错误。显然,运行docker-compose run backend bundle install后Gemfile.lock文件已正确更新,这是在安装gem。尽管如此,它将继续针对该gem或其他显示此错误。

事实证明,在某些情况下,仅使用docker运行bundle install是不够的。如此处的文档中所述:https://docs.docker.com/compose/rails/,有时在运行捆绑软件安装后,您需要重建映像。这解决了我的问题:

docker-compose run backend bundle install
docker-compose build

答案 2 :(得分:0)

除非重新安装metasploit-framework,否则一切都无法正常进行。我已经面对这个问题1周了。我已经亲自尝试过,并且现在可以运行。

  

$ pkg升级&& pkg安装git && pkg安装curl && pkg安装   wget && pkg安装nmap && curl -LO   raw.githubusercontent.com/Hax4us/Metasploit_termux/master/metasploit.sh   && chmod 777 metasploit.sh && ./metasploit.sh

答案 3 :(得分:0)

tl; dr:设置GEM_HOME = BUNDLE_PATH

由于您使用的是docker,因此我还假设您可能正在更改BUNDLE_PATH的值,以便可以缓存gems?如果是这样,您还需要将GEM_HOME变量设置为此值。

我无法确切解释原因。我的理论是……某事……在应该使用GEM_HOME时错误地使用了BUNDLE_PATH的值,因此从rails项目的Gemfile安装的gem不存在。

答案 4 :(得分:0)

使用docker缓存捆绑包是很常见的。如果您这样做了,并且更新了一些宝石,就会遇到这个问题。

删除卷并再次组成docker。

docker volume ls

然后:

docker volume rm <vol name>
相关问题