如何解决Gem :: Gem未找到异常
我的拉取请求因以下Ruby gem错误而不断失败:
Run[ -f Gemfile ] && bundle --deployment
gem install --no-document rspec:'~>3.0'
shell: /bin/bash -e {0}/opt/hostedtoolcache/Ruby/2.6.6/x64/lib/ruby/2.6.0/rubygems.rb:283:in
`find_spec_for_exe': Could not find 'bundler' (2.1.2) required by your
/home/runner/work/Telegram_Inspirational_Bot/Telegram_Inspirational_Bot/Gemfile.lock. (Gem::GemNotFoundException)
To update to the latest version installed on your system,run `bundle update --bundler`.To install the missing version,run `gem install bundler:2.1.2`from/opt/hostedtoolcache/Ruby/2.6.6/x64/lib/ruby/2.6.0/rubygems.rb:302:in`activate_bin_path'from/opt/hostedtoolcache/Ruby/2.6.6/x64/bin/bundle:23:in `<main>'Error: Process completed with exit code 1.
截屏CI
我的客户端无法运行我的应用
我的客户端无法运行我的应用程序。我敢肯定是因为这个错误。发出拉取请求后,他收到此错误:
The error:
bundle install
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Bundler could not find compatible versions for gem "bundle exec rspec":
In Gemfile:
telegram-bot-ruby was resolved to 0.13.0,which depends on
virtus was resolved to 1.0.5,which depends on
bundle exec rspec
Could not find gem 'bundle exec rspec',which is required by gem 'virtus',in any of the sources.
我真的无法弄清这个问题,因为最初我以为是gem文件中的错误。
宝石文件:
source 'https://rubygems.org'
git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
# gem "rails"
gem 'json'
gem 'net-http-persistent','~> 2.9','>= 2.9.4'
gem 'rubocop','~>0.81.0'
gem 'telegram-bot-ruby'
宝石文件锁定:
GEM
remote: https://rubygems.org/
specs:
axiom-types (0.1.1)
descendants_tracker (~> 0.0.4)
ice_nine (~> 0.11.0)
thread_safe (~> 0.3,>= 0.3.1)
coercible (1.0.0)
descendants_tracker (~> 0.0.1)
descendants_tracker (0.0.4)
thread_safe (~> 0.3,>= 0.3.1)
equalizer (0.0.11)
faraday (1.1.0)
multipart-post (>= 1.2,< 3)
ruby2_keywords
ice_nine (0.11.2)
inflecto (0.0.2)
json (2.3.1)
multipart-post (2.1.1)
net-http-persistent (2.9.4)
ruby2_keywords (0.0.2)
telegram-bot-ruby (0.13.0)
faraday
inflecto
virtus
thread_safe (0.3.6)
virtus (1.0.5)
axiom-types (~> 0.1)
coercible (~> 1.0)
descendants_tracker (~> 0.0,>= 0.0.3)
equalizer (~> 0.0,>= 0.0.9)
PLATFORMS
ruby
DEPENDENCIES
json
net-http-persistent (~> 2.9,>= 2.9.4)
telegram-bot-ruby
BUNDLED WITH
2.1.4
解决方法
我认为这里有两个问题。
未安装捆绑软件(或安装了错误的版本)
无论正在运行测试的任何系统/ linter(似乎是Github的CI工具)都没有安装正确版本的捆绑程序。尝试添加
gem install bundler:2.1.2
调用测试套件的工作。
RSpec不包含在Gemfile中
RSpec是必需的依赖项。看来您在测试作业中安装了rspec,但它不包含在您的Gemfile中。尝试添加
gem 'rspec'
到您的Gemfile。
,问题出在我使用的linter.yml上。 我的一个朋友最近通过从以下位置修改linter.yml解决了该问题:
名称:短毛绒
上:pull_request
职位:
rubocop:
name: Rubocop
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Setup Rubocop
run: |
gem install --no-document rubocop:'~>0.81.0' # https://docs.rubocop.org/en/stable/installation/
[ -f .rubocop.yml ] || wget https://raw.githubusercontent.com/microverseinc/linters-config/master/ruby/.rubocop.yml
- name: Rubocop Report
run: rubocop --color
收件人:
名称:测试
上:pull_request
职位:
rspec:
name: RSpec
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Setup Bundler
run: gem install bundler:2.1.4
- name: Setup RSpec
run: |
[ -f Gemfile ] && bundle --deployment
gem install --no-document rspec:'~>3.0'
- name: RSpec Report
run: rspec --force-color --format documentation
后者起作用了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。