使用RubyGems

作者: 开源天宝
发布时间:2015-07-07 15:33:55

2.1 Basic Gem Usage

本章将给出一些用户常用的使用gem 命令进行操作的例子。有关特殊gem命令的细节请参见 gem Command Reference 手册。

RubyGems中,版本化是一个非常基本的概念。你可以看看 Specifying Versions 这一章来更好地理解版本在RubyGems中是怎样协同工作的。

2.2 列出远程可安装的gems

如果你运行

gem query —remote # 快捷方式: gem q -R

你会看到所有远程服务器端gem包的详细列表。

简单的输出结果(已被严重简化):

*** REMOTE GEMS ***

activerecord (0.8.4, 0.8.3, 0.8.2, 0.8.1, 0.8.0, 0.7.6, 0.7.5)
Implements the ActiveRecord pattern for ORM.

BlueCloth (0.0.4, 0.0.3, 0.0.2)
BlueCloth is a Ruby implementation of Markdown, a
text-to-HTML conversion tool for web writers.
Markdown allows you to write using an easy-to-read,
easy-to-write plain text format, then convert it to
structurally valid XHTML (or HTML).

captcha (0.1.2)
Ruby/CAPTCHA is an implementation of the 'Completely
Automated Public Turing Test to Tell Computers
and Humans Apart'.

cardinal (0.0.4)
Ruby to Parrot compiler.

cgikit (1.1.0)
CGIKit is a componented-oriented web application
framework like Apple Computers WebObjects. This
framework services Model-View-Controller architecture
programming by components based on a HTML file, a
definition file and a Ruby source.

progressbar (0.0.3)
Ruby/ProgressBar is a text progress bar library for
Ruby. It can indicate progress with percentage, a
progress bar, and estimated remaining time.

rake (0.4.0, 0.3.2)
Ruby based make-like utility.

progressbar gem是一个既好用又简单的工具,我们将会用它来展示更多的特性。

2.3 搜索远程可安装的gems

如果你运行

 gem query --remote --name-matches doom
# 快捷方式: gem q -R -n doom

你会看到所有的远程服务器上与doom相匹配的gem包详细列表。

简单的输出结果:

*** REMOTE GEMS ***

ruby-doom (0.8, 0.0.7)
Ruby-DOOM provides a scripting API for creating DOOM
maps. It also provides higher-level APIs to make map
creation easier.

2.4 安装远程gem

如果你运行 (如有必要,在根目录下运行)

gem install --remote progressbar
# 快捷方式: gem i -r progressbar

progressbargem就会安装在你的电脑上。要注意的是你不必指定它的版本,但是如果你一定要指定也可以。因为它默认会自动安装最新的版本。

gem ins -r progressbar-0.0.3

或者

gem ins -r progressbar --version '> 0.0.1'

这两种情况的输出结果都十分简单:

Attempting remote installation of ‘progressbar’Successfully installed progressbar, version 0.0.3

RubyGems允许你安装某个库的不同版本,并在代码中指定实际要使用的版本。

安装命令的其它有用参数是—gen-rdoc,用来生成gem包的RDoc API documentation,以及—run-tests,用来运行的单元测试(如果有单元测试的话)。

还要注意的是,当你远程安装gem包的时候,同时也将下载和安装所有规定的附属文件。你可以尝试着安装copland,然后它会弹出让你也接受log4r的提示(如果你还没安装它的话)。

2.5 查看已经安装的gem

如果你运行

gem specification progressbar
# 快捷方式: gem spec progressbar

你会看到’’progressbar’’ gem的详细内容。

简单的输出结果:

 --- !ruby/object:Gem::Specification
rubygems_version:"1.0\"
name: progressbar
version: !ruby/object:Gem::Version
version: 0.0.3
date: 2004-03-20 20:03:00.679937 +11:00
platform:
summary: "Ruby/ProgressBar is a text progress bar library for Ruby. It can
indicate progress with percentage, a progress bar, and estimated
remaining time."
require_paths:
- lib
files:
- sample/test.rb
- lib/progressbar.rb
- docs/progressbar.en.rd
- docs/progressbar.ja.rd
- ChangeLog
autorequire: progressbar
author: Satoru Takabayashi
email: satoru@namazu.org
homepage: http://namazu.org/~satoru/ruby-progressbar/

这些有趣的信息包括作者的情况,gem的版本和描述。

还有一些让RubyGems正确使用本gem的重要技术提示。它们包括gem包包含的所有文件,从哪里引入文件,以及默认需要的文件 (之后会有更多与此相关的内容)。

2.6 御载gem

如果我们使用完progressbar,可以将它御载。

gem uninstall progressbar

简单的输出结果:

Successfully uninstalled progressbar version 0.0.3

如果这个gem还安装了一个版本,gem命令会询问你想删除哪个版本。

如果有其它的gem需要于这个要被御载的gem,并且没有其它解决办法来替代这个gem,用户将会收到一个警告,并且可以取消此次御载。

2.7 列出所有已经安装的gems

非常简单,运行:

gem query --local
# 快捷方式: 'gem q -L'

2.8 本地和远程操作的注意事项

毫无疑问,你已经注意到 —local —remote出现在目前为止的多数命令行中。如果你不指定它们, gem会尝试本地和远程两个操作。例如:

gem ins rake # 尝试本地安装,如有必要,进行远程安装

gem list -b ^C # 列出所有以“C”开始的本地和远程gems

2.9 浏览所有已安装的gems及其文档

你可以运行自己的gem服务器。这就意味着其它人能(潜在地)安装你电脑上的gems。进而说明你可以在网络浏览器上查看已安装的gem。只需运行:

gem server

然后将页面指向:http://localhost:8808

只要你在安装gem的时候要求生成它的文档,你就能够浏览它们。

2.10 使用配置文件

如果你总是需要为安装的gem生成RDoc documentation文档,并且运行单元测试,你可以在配置文件(home 目录中的.gemrc文件)中指定这些命令行参数。

gem: --rdoc --test

使用配置文件还可以完成其它事情(RDoc 的参数,GEMPATH 的设置)。运行`gem help env`来查看详细内容。

2.11 其它特性

gem check —alien 会报告RubyGems 库中的流氓(不受管理的)文件。

gem check —verify progressbar 会检查已经安装的 ’’progressbar’’ gem对应其校检和是否有效。



原文地址:http://article.yeeyan.org/view/130962/95500

标签: Ruby
来源:http://www.cnblogs.com/tambor/articles/2301139.html

推荐: