美文网首页
ruby gemspec中的依赖

ruby gemspec中的依赖

作者: auguszou | 来源:发表于2016-10-26 11:52 被阅读0次

问题的来源--sidekiq 4.1.3中的提交中有如下这么一个commit

sidekiq依赖于sinatra,在这个提交中,sinatra由development_dependency提升为dependency, 导致升级sidekiq后,bundle install 正常,当时启动或者重启sidekiq失败,发现sinatra依赖1.4.x版本。

翻遍了个整个网络,找到如下两篇文件
github中关于dependency的讨论还是挺多的(囧,文章好长)
rubygems官方说明

首先看一下sidekiq的gemspec文件

# -*- encoding: utf-8 -*-

require File.expand_path('../lib/sidekiq/version', __FILE__)

Gem::Specification.new do |gem|

gem.authors = ["Mike Perham"]

gem.email = ["mperham@gmail.com"]

gem.summary = "Simple, efficient background processing for Ruby"

gem.description = "Simple, efficient background processing for Ruby."

gem.homepage = "http://sidekiq.org"

gem.license = "LGPL-3.0"

gem.executables = ['sidekiq', 'sidekiqctl']

gem.files = `git ls-files | grep -Ev '^(myapp|examples)'`.split("\n")

gem.test_files = `git ls-files -- test/*`.split("\n")

gem.name = "sidekiq"

gem.require_paths = ["lib"]

gem.version = Sidekiq::VERSION

gem.add_dependency 'redis', '~> 3.2', '>= 3.2.1'

gem.add_dependency 'connection_pool', '~> 2.2', '>= 2.2.0'

gem.add_dependency 'concurrent-ruby', '~> 1.0'

gem.add_dependency 'rack-protection', '>= 1.5.0'

gem.add_development_dependency 'redis-namespace', '~> 1.5', '>= 1.5.2'

gem.add_development_dependency 'minitest', '~> 5.7', '>= 5.7.0'

gem.add_development_dependency 'rake', '~> 10.0'

gem.add_development_dependency 'rails', '>= 3.2.0'

end

该gemspec中指定了runtime dependency和development dependency。

runtime dependency有redis, connection_pool, concurrent-ruby, rack-protection这些都是sidekiq运行时所必需的
development dependency有redis-namepace, minitest, rake, rake, rails是sidekiq build(启动)以及test所需要的

那么gem install安装的时候如何安装所有的依赖呢?

可用过gem install --dev sidekiq 或者gem install --development-all sidekiq, 前者会安装development dependency, 后者会安装包括依赖的依赖。development dependency默认不会被安装,并且当gem被require的时候,它们不会被激活(加载)

相关文章

  • ruby gemspec中的依赖

    问题的来源--sidekiq 4.1.3中的提交中有如下这么一个commit sidekiq依赖于sinatra,...

  • 小记:Ruby GemSpec

    1.安装ruby 建议自己用Homebrew安装ruby,RVM管理ruby选择使用什么版本的ruby; 2.开发...

  • centos7 redis安装/集群部署/slots迁移

    一.安装依赖 1.ruby 安装 yum install ruby安装后查看版本 ruby -v (redis依赖...

  • Sublime配置SASS

    第一步:ruby安装 因为sass是依赖于ruby的,所以需要先安装ruby。官网下载ruby 安装过程中,请注意...

  • Cocoapods的安装与使用

    CocoaPods 官网 安装 CocoaPods安装需要依赖 Ruby,Mac已自带Ruby环境 Ruby的软件...

  • centos7 redis 集群部署

    ruby 安装 由于 redis 依赖 ruby 环境,所以首先安装好 ruby 安装 rvm 使用 rvm 方式...

  • Sass 与 Compass的安装

    1)依赖ruby,所以要先安装Ruby如何安装Ruby呢?在Windows下通过RubyInstaller来安装;...

  • Win10 WebStorm平台配置SCSS环境

    ruby安装 因为sass依赖于ruby环境,所以装sass之前先确认装了ruby。先导官网下载个ruby在安装的...

  • sublime-sass 安装配置

    第一步、安装ruby环境 Sass依赖于ruby环境,所以装sass之前先确认装了ruby。可以到 Ruby 的官...

  • sass安装流程

    1.ruby安装 因为sass依赖于ruby环境,所以装sass之前先确认装了ruby。先导官网下载个ruby 在...

网友评论

      本文标题:ruby gemspec中的依赖

      本文链接:https://www.haomeiwen.com/subject/qdmduttx.html