RVM(Ruby Version Manager)
RVM是一个命令行工具,可以提供一个便捷的多版本Ruby环境的管理和切换。与rbenv rbenv 使用指南
相似.
安装
RubyGems
RubyGems(简称 gems)是一个用于对 Ruby组件进行打包的 Ruby 打包系统。 它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具.
Ruby1.9.1 以后的版本自带RubyGems,直接在终端gem update --system升级到最新版即可.
安装Gem
RubyGems.org 是官方的Gem托管中心,RubyGems就是从这里远程下载gem包的。RubyGems 将所有的gem包 安装到 /[ruby root]/lib/ruby/gems/[ver]/ 目录下,这其中包括了cache、doc、gems、specifications 4个目录,cache下放置下载的原生gem包,gems下则放置的是解压过的gem包。当安装过程中遇到问题时,可以进入这些目录,手动删除有问题的gem包,然后重新运行 gem install [gemname] 命令即可.
源配置
Gem默认的源是rubygems.org/, 但是天朝下我们的下载安装gem会出现网络问题,所以这边我们可以改用国内的源gems.ruby-china.com/.
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://gems.ruby-china.com/
$ gem sources -l
*** CURRENT SOURCES ***
https://gems.ruby-china.com/
终端命令
# 查看RubyGems软件的版本
gem -v
# 更新升级RubyGems软件自身
gem update --system
# 更新所有已安装的gem包
$ gem update
# 更新指定的gem包
# 注意:gem update [gemname]不会升级旧版本的包,可以使用 gem install [gemname] --version=[ver]代替
$ gem update [gemname]
# 安装指定gem包,程序先从本机查找gem包并安装,如果本地没有,则从远程gem安装。
gem install [gemname]
# 仅从本机安装gem包
gem install -l [gemname]
# 仅从远程安装gem包
gem install -r [gemname]
# 安装gem包,但不安装相关文档文件
gem install [gemname] --no-ri --no-rdoc
# 安装指定版本的gem包
gem install [gemname] --version=[ver]
# 删除指定的gem包,注意此命令将删除所有已安装的版本
gem uninstall [gemname]
# 删除某指定版本gem
gem uninstall [gemname] --version=[ver]
# 查看本机已安装的所有gem包
gem list
# 列出远程RubyGems.org 上有此关键字的gem包(可用正则表达式)
gem list -r keyword
# 列出远程RubyGems.org 上所有Gmes清单,并保存到文件。
gem list -r > remote_gem_list.txt
#查看所有gem包文档及资料
gem server
#显示RubyGem使用帮助
gem help
#列出RubyGem命令一些使用范例
gem help example
常用Gem
cocoapods, Jenkins, git, fastlane
bundler
bundler主要用于管理Ruby应用程序的依赖关系,并按照此依赖关系安装所需的Gems.类似于iOS中常用的cocoapods.
Gemfile
简介
Gemfile 是我们创建的一个用于描述 gem 之间依赖的文件. Gemfile 必须放在项目的根目录下面,这是Bundler的要求,对于任何的其他形式的包管理文件来说,这也是标准.
这里值得注意的一点是 Gemfile 会被作为Ruby 代码来执行.当在 Bundler 上下文环境中被执行的时能使我们访问一些方法,我们用这些方法来解释 gem 之间的 require 关系.
创建
通过bundle init可创建出Gemfile文件
编辑
source 'https://rubygems.org'
gem 'sinatra', '~> 1.3.6'
gem 'rack-cache'
gem 'rack-bug'
安装Gem
根据Gemfile文件安装gem
bundle install
更新Gem
根据Gemfile文件更新gem
更新个别gem
bundle update sinatra
更新所有gem
bundle update
Gemfile.lock
如果任何需要的gem已经被安装了,bundler 会直接使用它们.在你的系统上安装完所有的 gem 后,bundler 会写一个所有这些 gem 和它们的版本号的快照到 Gemfile.lock 里