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

问题描述 投票:9回答:4

我已经在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的一些已知问题而失败(我正在使用两个内部gems)。 [编辑:https://github.com/docker/compose/issues/2856#issuecomment-236625662]

一切正常,直到我升级了一些Ruby gem,但我不确定为什么或如何修复它。

ruby docker rubygems docker-compose bundler
4个回答
12
投票

我在Docker之外有类似的问题。

我删除了Gemfile.lock并运行了bundle

问题消失了。

您的里程可能有所不同。


2
投票

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

[在某些情况下,仅通过docker运行捆绑安装是不够的。如此处文档中所指定:https://docs.docker.com/compose/rails/有时在运行捆绑包安装后,您需要重建映像。这解决了我的问题:

docker-compose run backend bundle install
docker-compose build

1
投票

tl; dr:设置GEM_HOME = BUNDLE_PATH

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

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


-1
投票

除非您重新安装metasploit-framework,否则什么都不会起作用。我已经面对这个问题1周了。我已经亲自尝试过,并且现在可以运行。

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

© www.soinside.com 2019 - 2024. All rights reserved.