Bundler安装看似不需要的宝石

 被爱的李义9_556 发布于 2023-01-31 18:40

Bundler似乎正在安装我不需要的宝石,它们正在引发问题.我们举两个例子:timerscelluloid

bundle install安装timers是必需的,celluloid但我不知道为什么要安装赛璐珞.我正在使用ruby 1.8.7和rails 3.2.13.

为什么celluloid要安装?如何查找未安装(无法安装)的gem的反向依赖项?

我的Gemfile

source "https://rubygems.org"

gem "rails", "3.2.13"
gem "mysql2", "~> 0.3.13"
gem "json", "~> 1.8.0"

group :assets do
  gem "guard-rails-assets", "~> 0.1.3"
  gem "sass-rails", "~> 3.2.6"
  gem "coffee-rails", "~> 3.2.2"
  gem "uglifier", "~> 1.0.3"
end

gem "jquery-rails", "~> 3.0.4"
gem "simple_form", "~> 2.1.0"
gem "bootstrap-sass", :path => "gems/bootstrap-sass-c0e12a90ba3e"
gem "client_side_validations", "~> 3.2.6"
gem "client_side_validations-simple_form", "~> 2.1.0"
gem "therubyracer", :platform => :ruby
gem "require_relative", "~> 1.0.3"
gem "icalendar", "~> 1.4.3"
gem "whenever", "~> 0.8.4", :require => false
gem "jquery-cookie-rails", "~> 1.3.1"
gem "hominid", "~> 3.0.5"

输出来自 bundle install

Fetching gem metadata from https://rubygems.org/..........
Fetching additional metadata from https://rubygems.org/..
Resolving dependencies...
Using rake (10.1.1)
Using i18n (0.6.1)
Using multi_json (1.8.4)
Using activesupport (3.2.13)
Using builder (3.0.4)
Using activemodel (3.2.13)
Using erubis (2.7.0)
Using journey (1.0.4)
Using rack (1.4.5)
Using rack-cache (1.2)
Using rack-test (0.6.2)
Using hike (1.2.3)
Using tilt (1.4.1)
Using sprockets (2.2.2)
Using actionpack (3.2.13)
Using mime-types (1.25.1)
Using polyglot (0.3.3)
Using treetop (1.4.15)
Using mail (2.5.4)
Using actionmailer (3.2.13)
Using arel (3.0.3)
Using tzinfo (0.3.38)
Using activerecord (3.2.13)
Using activeresource (3.2.13)
Using sass (3.2.13)
Using bootstrap-sass (3.0.0.0) from source at gems/bootstrap-sass-c0e12a90ba3e
Using bundler (1.5.2)
Using timers (1.1.0)

Gem::InstallError: celluloid requires Ruby version >= 1.9.2.
An error occurred while installing celluloid (0.15.2), and Bundler cannot continue.
Make sure that `gem install celluloid -v '0.15.2'` succeeds before bundling.

Ash Wilson.. 7

您可以让Bundler向您显示完整的依赖关系图:

sudo apt-get install graphviz
# Or however you install graphviz on your platform; http://www.graphviz.org/
gem install ruby-graphviz
bundle viz

你将在当前目录中有一个带有完整依赖关系图的.png.

或者,您可以通过查看Gemfile.lock文件来追溯依赖关系.在该GEM部分中,每个gem都会在其下方缩进,并且可以追溯到您要求的gem:

GEM
# ...
    listen (2.4.0)
      celluloid (>= 0.15.2)
      rb-fsevent (>= 0.9.3)
      rb-inotify (>= 0.9)
# ...
    guard (2.2.5)
      formatador (>= 0.2.4)
      listen (~> 2.1)
      lumberjack (~> 1.0)
      pry (>= 0.9.12)
      thor (>= 0.18.1)
# ...

从您的Gemfile判断,我猜测Celluloid被包含为传递依赖guard-rails-assets.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有