转载请标明来源:https://www.cnblogs.com/zhanggui/p/9719291.html

一. 基础理解

RubyGems简称gems,它是一个用于对Ruby组件进行打包的Ruby打包系统。使用它可以方便地下载安装Ruby的软件包到用户的系统。一个软件包叫做 一个gem,它包含了一个打包的Ruby Application或者一个library。

二. RubyGems安装

  1. 首先在这里下载最新的安装包
  2. 解压,然后进入解压的文件夹
  3. 执行ruby setup.rb(前提是安装了ruby)
  4. 安装完成

三. gem命令

1.gem install

用于安装一个gem,例如:

gem install xcodeproj  #从本地目录安装或者从远程服务器
gem install xcodeproj -v 1.6.0 #安装特定版本的package
gem install rake --remote #只从远程服务器获取安装

2.gem list

查看已经安装的gem,例如:

gem list --local
gem list #和上面的命令行等价
gem list test #列出包含gem名称包含test的gem

3.gem update

用户更新一个gem,例如:

gem update --system #更新gem自身
gem update --system 2.7.6 #更新gem到指定的版本
gem update #更新所有已经安装的gem包
gem update rake #更新某个gem

4.gem search

搜索特定的gem,例如:

gem search log --both   #列出本地和远程服务器中名称包含log的gem
gem search log --remote #只列出远程服务器中名称包含log的gem

5.gem uninstall

卸载gem,例如:

gem uninstall rake  #卸载rake

6.gem environment

查看RubyGems的信息

四. gem的结构

一个gem的结构如下:

freewill/

|------ bin/

| |------ freewill

|------ lib/

| |------- freewill.rb

|------ test/

| |------ test_freewill.rb

|------ README

|------ Rakefile

|------ freewill.gemspec

其中:

  • bin文件夹里面包含了可执行文件,它将会加载到用户的PATH中
  • lib文件夹包含了gem的源代码
  • test/spec文件夹包含了测试,这取决于开发者使用的测试框架
  • Rakefile:每个gem通常都会包含一个Rakefile,rake程序使用它来进行自动化测试、生成代码和执行其他的任务
  • README:当安装gem时,将自动为用户生成文档,大多数情况下包含RDoc文档,也有一些包含YARD文档
  • freewill.gemspec:该spec文件包含了该gem的信息,例如名字、测试信息、platform、版本号等,更多可以参见:这里

五. 总结

这里只是对RubyGems有一个简单的了解,也方便后续命令的查看和实用。后续会继续深入理解学习。

RubyGems系列之RubyGems初识的更多相关文章

  1. .Neter玩转Linux系列之一:初识Linux

    一.为什么要学习Linux (1)首先我们欣赏一下,曾经的微软是如何看待Linux的,是不是很惊讶,微软还是很可爱的(#^.^#) 如今的微软看待Linux的态度:有人说微软技术那么厉害,难道微软就不 ...

  2. MyBatis 框架系列之基础初识

    MyBatis 框架系列之基础初识 1.什么是 MyBatis MyBatis 本是 apache 的一个开源项目 iBatis,后改名为 MyBatis,它 是一个优秀的持久层框架,对 jdbc 的 ...

  3. Bing Maps进阶系列一:初识Bing Maps地图服务

    Bing Maps进阶系列一:初识Bing Maps地图服务 Bing Maps提供了一组WCF的地图服务,使用这些服务我们可以方便的在自己的应用系统里实现地理位置搜索等相关功能.他们分别是地理编码服 ...

  4. RubyGems系列之创建自己的gem

    转载请注明来源:https://www.cnblogs.com/zhanggui/p/9720818.html 一. 前言 我们可以在rubygems.org中下载安装他人创建的gem.现在,我们尝试 ...

  5. 深入理解javascript对象系列第一篇——初识对象

    × 目录 [1]定义 [2]创建 [3]组成[4]引用[5]方法 前面的话 javascript中的难点是函数.对象和继承,前面已经介绍过函数系列.从本系列开始介绍对象部分,本文是该系列的第一篇——初 ...

  6. CodeDOM 系列一: 初识

    最近手头项目接触到了CodeDom,顺带着在这里做个系列文章,有兴趣的可以做个参考.   CodeDOM是个用于运行时生成代码,以及编译生成的代码的相关技术.我们通过构造CodeDOM这样的DOM树 ...

  7. WCF系列教程之初识WCF

    本随笔参考自WCF编程系列(一)初识WCF,纯属读书笔记,加深记忆. 1.简介:Windows Communication Foundation(WCF)是微软为构建面向服务的应用程序所提供的统一编程 ...

  8. Angular专题系列之一:初识Anjularjs

    Angular作为一个前端的主流框架,以其强大的特性正在被越来越多的程序员们所使用,那么,什么是anjular呢?angularjs是一个javascript framework,一个js的框架,可以 ...

  9. spring cloud 入门系列一:初识spring cloud

    最近看到微服务很火,也是未来的趋势, 所以就去学习下,在dubbo和spring cloud之间我选择了从spring cloud,主要有如下几种原因: dubbo主要专注于微服务中的一个环节--服务 ...

随机推荐

  1. Ubuntu移除mysql后重新安装

    首先删除mysql: sudo apt-get remove mysql-* 然后清理残留的数据 dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg ...

  2. Windows系统ping本地虚拟机~

    虚拟机左上角[编辑]>>>[虚拟网络编辑器] [VMnet1]>>>子网ip:192.168.124.0 子网掩码:255.255.255.0 [VMnet8]&g ...

  3. Redis入门教程(二)

    推荐阅读: Redis入门教程(一)https://www.cnblogs.com/jichi/p/10285346.html 5. Redis 的数据结构 5.1 Redis 数据结构介绍 redi ...

  4. [LeetCode] 25. k个一组翻转链表

    题目链接: https://leetcode-cn.com/problems/reverse-nodes-in-k-group/ 题目描述: 给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链 ...

  5. Linux内存管理 (5)slab分配器

    专题:Linux内存管理专题 关键词:slab/slub/slob.slab描述符.kmalloc.本地/共享对象缓冲池.slabs_partial/slabs_full/slabs_free.ava ...

  6. ASP.NET Aries 高级开发教程:使用存储过程(番外篇)

    前言: 发现这个问题,有不少人提起过,所以就简单写成文章吧. 接下来看如何在Aries 框架中使用存储过程,整体步骤和绑定普通视图差不多. 步骤一:新建一个空视图. 可以在SqlCode管理中,创建一 ...

  7. 再谈AbstractQueuedSynchronizer3:基于AbstractQueuedSynchronizer的并发类实现

    公平模式ReentrantLock实现原理 前面的文章研究了AbstractQueuedSynchronizer的独占锁和共享锁,有了前两篇文章的基础,就可以乘胜追击,看一下基于AbstractQue ...

  8. dubbo 序列化机制之 hessian2序列化实现原理分析

    对于远程通信,往往都会涉及到数据持久化传输问题.往大了说,就是,从A发出的信息,怎样能被B接收到相同信息内容!小点说就是,编码与解码问题! 而在dubbo或者说是java的远程通信中,编解码则往往伴随 ...

  9. js数组去重常用方法

    js数组去重是面试中经常会碰到的问题,无论是前端还是node.js数组常见的有两种形式,一种是数组各元素均为基本数据类型,常见的为数组字符串格式,形如['a','b','c'];一种是数组各元素不定, ...

  10. ES 07 - Elasticsearch查询文档的六种方法

    目录 1 Query String Search(查询串检索) 2 Query DSL(ES特定语法检索) 3 Query Filter(过滤检索) 4 Full Text Search(全文检索) ...