如何工作与Ruby包管理器RubyGems的:入门

在这种DigitalOcean文章中,我们将学习所有的重要位和RubyGems的碎片,从最基础的,以更先进的功能。如果您计划在长期内一起工作(或使用)的Ruby,掌握这个工具可以转化为效率的为您的工作很大。

介绍


RubyGems是一个管理Ruby应用程序包从创建到分发的生命周期的工具。 如果你曾经使用过基于Ruby的应用程序,你可能已经使用RubyGems来管理依赖项,库或框架(例如Ruby-on-Rails)。

在这篇DigitalOcean文章中,我们将学习RubyGems的所有重要部分,从最基本的到更高级的功能。 如果你打算长期使用(或使用)Ruby,掌握这个工具可以为你的工作转化大量的效率。

词汇表


包管理器和RubyGems


1. What Is A Package Manager?
2. Application Packages
3. What Is RubyGems?
4. What Is A Gem?

RubyGems Gem包格式


1. Gem Information And Format
2. The `*.gemspec` File

RubyGems入门


1. Installing Ruby And RubyGems
2. Usage

4.主要RubyGem操作与Gem一起使用


1. Finding Installed And Available Gems
2. Searching RubyGems.org For Gems
3. Installing New Gems
4. Finding Outdated Gems
5. Updating Gems
6. Removing / Deleting Gems
7. Reading The Gem Documentation

包管理器和RubyGems


什么是包管理器?


在计算机方面,几乎一切都由不同程序之间的连接和集合组成。 当你启动机器的时刻,一堆代码被执行,反过来加载一些其他的。 构建一个Pyramid,形成最终平台,允许您运行所需的更高级别的应用程序(例如Ruby!)。

从上面的应用程序执行生命周期的基本描述可以看出,当涉及到程序时,一切都依赖于其他人。 这个循环在开发阶段开始。

为了促进该程序依赖,尤其是现在图书馆的下载和安装过程中,一套工具被称为包管理器大量使用。 这些工具使得它很容易找到,安装和跟踪作为开发人员,您的程序需要的所有其他库。

通过这些工具分发的应用程序包通常是包含程序和元数据的简单归档。 存在不同的包管理器来管理不同的编程语言的依赖性 - 并且它们各自以不同的方式命名它们的包。

应用程序包


简单地说,应用程序包包含已经编译和即用的软件或其他人使用的库。 他们可以(通常做)带有额外的文件,以提供有关包的信息,尽管重要,只有有时用一个体面的使用手册。 一旦包管理器安装了一个包,所有这些元素在它们被设置的环境中变得可访问(例如RVM Gemset)。

什么是RubyGems?


在Ruby中的情况下,默认的包管理器被称为RubyGems的。 从版本这一计划已分配使用默认的Ruby解释器1.9 ,并帮助你很多东西,从下载到打包和分发Ruby应用程序-当然,相关的二进制文件和库。 RubyGems非常丰富,可能是最成熟的包管理应用程序之一。 它为开发人员提供了一个标准结构,以及一个标准格式来处理称为Gems的应用程序集合(包)。

什么是Gem?


创业板是一个应用程序包在结构上我们刚才给出的通用的描述非常相似。 它可以是代码,库,依赖列表和一些额外的元数据的集合,定义使用RubyGems工具分发的包。

开始使用程序的最简单的方法是在开发基于Ruby(或Ruby相关)的应用程序时使用这些包。 在本教程中,我们将学习如何使用RubyGems来处理和处理基于Gem的包。

RubyGems Gem包格式


Gem信息和格式


正如我们前面提到的,Gem是一个包含不同组件的包。 每个Gem都有一个版本和一个基本定义的平台,它是建立。

Gem目录可以包含以下内容:

  • 应用代码;

  • 测试;

  • 描述依赖关系;

  • 二叉;

  • 相关文件;

  • 关于包的信息(例如gemspec)。

它们具有类似于以下的基本结构:

/[package_name]               # 1
        |__ /bin              # 2
        |__ /lib              # 3
        |__ /test             # 4
        |__ README            # 5
        |__ Rakefile          # 6
        |__ [name].gemspec    # 7
  1. [package_name]:

    Gem包的主根目录。

  2. / bin:

    如果包有任何可执行二进制文件的位置。

  3. / lib:

    包含主要Ruby应用程序代码(包含模块)的目录。

  4. /测试:

    测试文件的位置。

  5. Rakefile:

    使用Rake构建的库的Rake文件。

  6. [packagename] .gemspec:

    * .gemspec文件,其具有主目录的名称,包含所有包元数据,例如名称,版本,目录等。

gemspec文件


非常像任何分布式或共享的应用程序集合,Gems也有一个描述包的文件,它也包含一些非常有用的附加信息。

这些gemspec文件包含某些必要的数据,如在包的版本,维护者名称和平台,用一些可选属性如钥匙,联系信息或附加描述的可能性。

一个gemspec文件看起来类似于下面的例子:

Gem::Specification.new do |s|
  s.name        = 'myapp'
  s.version     = '1.5.7'
  s.licenses    = ['Apache']
  s.summary     = "My application package"
  s.description = "Optional, longer description."
  s.authors     = ["Maintaner Name"]
  s.files       = ["path/to/files", "additional/files", ..]
end

RubyGems入门


安装Ruby和RubyGems


如果你没有安装Ruby,因此RubyGems,你可以按照下面的两个链接之一获得它在你的平台上选择。

用法


使用RubyGems非常容易。 一旦你安装Ruby,应用程序应该在你的设置PATH ,你就可以开始通过键入使用工具gem终端仿真程序(如终端OS X,用于Windows的PuTTY等)内。

运行gem看到一些使用说明和示例:

gem

# RubyGems is a sophisticated package manager for Ruby.  This is a
# basic help message containing pointers to more information.

# Usage:
#     gem -h/--help
#     gem -v/--version
#     gem command [arguments...] [options...]

正如你所看到的,有工作gem包括链接与参数和选项,例如,一个命令:

gem help commands

# GEM commands are:

# build             Build a gem from a gemspec
# cert              Manage RubyGems certificates and signing settings
# check             Check a gem repository for added or missing files
# ..

提示:当你运行像Ruby或耙的命令,通过一个目录列表您的操作系统的搜索找到与该名称的可执行文件。 此目录列表位于一个名为PATH的环境变量中,列表中的每个目录由冒号分隔:

/ usr / local / bin:/ usr / bin:/ bin

PATH中的目录从左到右进行搜索,因此在列表开头的目录中匹配的可执行文件优先于结束时的另一个。 在本示例中,将首先搜索/ usr / local / bin目录,然后搜索/ local / bin,然后搜索/ bin。

当你安装Ruby,无论是ruby翻译和RubyGems的' gem被添加到您的PATH。

主要RubyGem操作与Gem


开始学习新的编程语言还意味着学习使用基本和常见的相关工具,如Ruby的RubyGems。 没有过于复杂的事情,让我们看看在开始使用这个包管理工具时你需要知道的基本操作。

通常,与任何包管理器的主要操作可以被认为是:

  • 找出系统上安装的是什么;

  • 搜索和发现新包;

  • 找出哪些包需要更新;

  • 安装新的;

  • 更新旧的;

  • 删除(或删除)包;

  • 清理不再需要的东西;

  • 签出文档。

让我们看看如何使用RubyGems执行这些操作。

寻找已安装和可用的Gem


你可以认为找到所有当前已安装的Gem为得到他们的名单中。

因此,请记住, list的命令是你所需要的进行此项操作。

运行以下命令以获取他们的版本安装gem的列表

gem list

# ** LOCAL GEMS ***

# actionmailer (4.0.2)
# actionpack (4.0.2)
# activesupport (4.0.2)
# bundler (1.5.3, 1.5.2)
# capistrano (3.1.0)
# coffee-rails (4.0.1)
# coffee-script (2.2.0)
# coffee-script-source (1.7.0, 1.6.3)
# execjs (2.0.2)
# i18n (0.6.9)
# ..

搜索RubyGems.org for Gems


如果你已经知道Gem的名称,可以使用search命令查找它。

作为回报,你将再次有一个Gem及其版本的列表。

运行以下命令按名称搜索gem:

# Usage: gem search [name]
# Example:
gem search rails

# *** REMOTE GEMS ***

# rails (4.0.2)
# rails-3-settings (0.1.1)
# rails-action-args (0.1.1)
# rails-admin (0.0.0)
# .. 

注意:您可以使用正则表达式查询的Gem名称。 您也可以通过-d标志来获得额外的信息,例如:

gem search rails_utils -d

# *** REMOTE GEMS ***

# rails_utils (2.1.4)
#     Author: Winston Teo
#     Homepage: https://github.com/winston/rails_utils
# 
#     Rails helpers based on opinionated project practices.

安装新Gem


一旦你找到你想安装一个Gem,你可以简单地使用install命令。

运行以下命令安装新的gem:

# Usage: [sudo] gem install [name]
# Example:
gem install rails_utils

# Fetching: rails_utils-2.1.4.gem (100%)
# Successfully installed rails_utils-2.1.4
# Parsing documentation for rails_utils-2.1.4
# Installing ri documentation for rails_utils-2.1.4
# Done installing documentation for rails_utils after 0 seconds
# 1 gem installed

注意:当您安装一个新的Gem,Gem中指定的所有相关性也安装这样,创业板实际上可以正常工作。

为了下载gem的特定版本,请使用以下命令:

# Usage: [sudo] gem install [name] -v [version]
# Example:
gem install rails -v 4.0

寻找过时的Gem


为了找出哪些Gem是过时的(即有较新版本),你可以使用outdated命令。 这又将会为您提供了当前安装的版本(即当地的Gem )Gem的列表。

运行以下命令查找哪些gem已过时:

gem outdated

# builder (3.1.4 < 3.2.2)
# bundler (1.5.2 < 1.5.3)
# coffee-script-source (1.6.3 < 1.7.0)
# jquery-rails (3.0.4 < 3.1.0)

更新Gem


当你看到哪些Gem需要更新,你可以简单地这样做使用update命令。

运行以下命令来更新gem:

# Usage: [sudo] gem update [name]
# Example:
gem update bundler

# Updating installed gems
# Updating bundler
# Fetching: bundler-1.5.3.gem (100%)
# Successfully installed bundler-1.5.3
# Parsing documentation for bundler-1.5.3
# Installing ri documentation for bundler-1.5.3
# Installing darkfish documentation for bundler-1.5.3
# Done installing documentation for bundler after 6 seconds
# Gems updated: bundler

删除/删除Gem


删除从本地计算机Gem与完成uninstall命令,类似于install

运行以下命令删除/删除gem:

# Usage: [sudo] gem uninstall [name]
# Example:
gem uninstall bundler

或者,您可以指定版本以仅删除该版本。

# Usage: [sudo] gem uninstall [name] -v [version]
# Example:
gem uninstall bundler -v 1.0.0

# Successfully uninstalled bundler-1.0.0

阅读Gem文档


关于Gem最方便和重要的事情之一是他们[应该]带有良好的文档,以允许您开始与他们快速工作。 使用文档的最简单的方法是运行一个本地服务器,您将可以访问所有已安装的gem的使用说明。

运行以下命令以运行文档服务器:

gem server

# Server started at http://0.0.0.0:8808
# Server started at http://[::]:8808

您现在可以访问http://0.0.0.0:8808用你喜欢的浏览器中,找到您想了解更多有关它的阅读文档的Gem。

:提交OS Tezer