• Bundler


    Bundler - gems管理器,类比cocopods

    简介

    Ruby Project依赖于一系列的ruby gems.而bundler是一个很好的管理ruby项目gems的工具。当然也是一个ruby gem.

    使用bundler可以为你的ruby project提供统一的构建环境(无论是production, development, 还是staging),因为bunder可以很好的跟踪和安装指定的和预期的gem.

    Bundler 能够跟踪并安装所需的特定版本的 gem,以此来为 Ruby 项目提供一致的运行环境。

    Bundler 是 Ruby 依赖管理的一根救命稻草,它可以保证你所要依赖的 gem 如你所愿地出现 在开发、测试和生产环境中。 利用 Bundler 启动项目简单到只用一条命令:bundle install。

    试验:

    1. 安装ruby gem

    前提:试验环境中已存在ruby和rubygem

    image

    1. 使用bundler安装gem

    1). 在ruby project的根目录下写Gemfile

    image

    2). 安装gems 

    和你的Gemfile同级目录运行’bundle install --verbose‘,可以看到整个安装过程。bundler根据你指定的gem源查找相应的version,并进行安装。

    再次运行'bundle install', 则bunlder会检测是否已安装相应的Gem包,如果已经安装,则直接using否则进行安装,第一次安装完成后, bundler保存当前的gems的快照到Gemfile.lock

    remote, platforms, dependencies, build with 字段的意思很好理解,这里不再复述。

    另外,Gemfile.lock中specs中的gems之间层级关系很简单,就是gem及其下属依赖。

    从下往上读Gemfile.lock,可发现,最底层依赖的包在最下面。

    而specs则是gems依赖关系、版本信息的明细清单。

    3) 验证Gemfile.lock的工作原理

    copy这个ruby project到另一个host下(ruby, rubygem已安装),运行bundle install

    对比图'install gems',可以看出,安装的gems完全一致

    即, bundle install在存在Gemfile.lock的情况下,依据Gemfile.lock进行安装。如果没有Gemfile.lock则会根据Gemfile进行安装,并生成Gemfile.lock.

    是,Gemfile.lock就是简介中所说的gems快照。而不同环境间一致的部署就是依赖Gemfile.lock而实现的。

    1. upgrade gems
    1. 更新现有的gem包的版本至高版本(而非latest)

    编辑Gemfile中gem的version, 然后运行bundle install, 则Gemfile.lock会自动更新

    我们可以看到,我们更新了rake gem到高一些的版本

    1. 更新没有指定版本的gem到latest版本,则运行bundle update gem

    如果不指定gem, bundle update 则会更新所有满足条件的gem到最新版本。

  • 相关阅读:
    java抽象类怎么实例化了及C++中抽象类的构造函数
    树及其遍历
    C++中类的多态与虚函数的使用
    C++中#if #ifdef 的作用
    用链表实现两大数相乘
    C++中的链表类的设计
    IPicture总结
    c++标准库中,含有链表的类list
    TCP/IP、Http的区别
    C语言单链表实现19个功能完全详解
  • 原文地址:https://www.cnblogs.com/liuxiaokun/p/12702141.html
Copyright © 2020-2023  润新知