【问题标题】:Why is bundler looking for mysql2 -v '0.4.4' --source 'https://rubygems.org/'为什么捆绑器在寻找 mysql2 -v '0.4.4' --source 'https://rubygems.org/'
【发布时间】:2018-12-15 07:35:22
【问题描述】:

下面是我的 Gemfile,但我没有指定 mysql2 版本,但由于某种原因它正在寻找 0.4.4。它必须是另一个gem的依赖项。我刚刚被分配了任何想法?

source 'https://rubygems.org'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.6'
# Use sqlite3 as the database for Active Record
gem 'mysql2', group: :production
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
gem 'active_model_serializers', '~> 0.10.0.rc5'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'acts_as_better_tree'
gem 'rest-client', '~> 1.8'
gem 'apipie-rails', :github => 'Apipie/apipie-rails'
gem 'devise'
gem 'petergate'
gem 'pry-rails'
gem 'annotate'
gem 'slim-rails'
gem 'bootstrap-sass'
gem 'font-awesome-sass'
gem 'carrierwave'
gem 'carrierwave-base64'
gem 'carrierwave-aws'
gem 'authorizenet'
gem 'figaro'
gem 'roo', '~> 2.3.2'
gem 'roo-xls', '~> 1.0'
gem 'mini_magick', '~> 4.5'
gem 'html5shiv-rails'
gem 'cocoon'
gem 'will_paginate'
gem 'wicked_pdf'
gem 'wkhtmltopdf_binary'


gem "minitest-rails"
gem "minitest-reporters"
gem 'airbrake', '~> 5.6'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

group :development do
  # Access an IRB console on exception pages or by using <%= console %> in views
  gem 'web-console', '~> 2.0'
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
  gem 'capistrano'
  gem 'capistrano-passenger'
  gem 'capistrano-bundler'
  gem 'capistrano-rails'
  gem 'capistrano-rails-console'
  gem 'capistrano-rvm'
  gem 'better_errors'
  gem 'pry'
end

group :development, :test do
  gem 'sqlite3'
  gem 'byebug'
end

【问题讨论】:

  • 您希望它查找哪个版本?
  • 我没有管理层的指示,所以我猜是最新的。我希望 bundler 能够提取最新版本,因为没有指定版本。
  • 运行 bundle install 时出现此错误:安装 mysql2 (0.4.4) 时出错,并且 Bundler 无法继续。在捆绑之前确保gem install mysql2 -v '0.4.4' --source 'https://rubygems.org/' 成功。当我在新的 shell 中运行 gem install mysql2 -v '0.4.4' --source 'https://rubygems.org/' 时,我得到:错误:在任何存储库中都找不到有效的 gem 'mysql2' (= 0.4.4) 错误:执行 gem 时 ... (Gem::RemoteFetcher::FetchError) SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: tlsv1 alert protocol version (rubygems.org...
  • 那么如果版本 0.4.4 不存在什么 gem 需要它?
  • 我不知道这个问题的答案是什么,但我只是将我的 Gemfile 更改为阅读 gem 'mysql2', '&gt; 0.4.4', group: :production 并且它捆绑得很好。我的猜测是其中一个编译文件有问题。

标签: ruby-on-rails ruby rubygems gemfile


【解决方案1】:

$ gem dependency mysql2 --reverse-dependencies

它将列出 mysql2 的每个版本,然后列出依赖于该版本的 gem。

【讨论】:

    【解决方案2】:

    我认为问题出在 rails 版本和 mysql2 版本。将包含 gem 'mysql2' 的 Gemfile 行更改为 gem 'mysql2', '~&gt; 0.4.0'

    我已经安装了gem 'rails', '4.2.6',但显然 mysql2 和那个版本的 rails 存在一些编译错误。

    "对于 Rails 4.x,请将 gem 固定到 mysql2 '~> 0.4.0'" - sodabrew

    执行此操作后,bundle install 运行,我能够运行 rails c 而没有错误。

    【讨论】:

      猜你喜欢
      • 2021-07-19
      • 2020-04-20
      • 2011-11-09
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多