转载请标明来源: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. T-SQL语法基础

    一.T-SQL语言的分类 DDL-数据定义语言 create-创建 alter-修改 drop-删除(针对对象) DML-数据操作语言 Insert-插入 update-更新 delete-删除(针对 ...

  2. 二、使用docker-compose搭建AspNetCore开发环境

    1 使用docker-compose搭建开发环境 我们的目标很简单:使用docker-compose把若干个docker容器组合起来就成了. 首先使用Nginx代理所有的Web程序,这样只需要在主机上 ...

  3. 【工具篇】抓包中的王牌工具—Fiddler (2-工具介绍)

    Fiddler 抓包工具界面简介 1) 字段说明 Fiddler想要抓到数据包,要确保Capture Traffic是开启,在File –> Capture Traffic. 开启后再左下角会有 ...

  4. #Java学习之路——基础阶段二(第六篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  5. PHP全栈学习笔记9

    php的会话控制,什么是会话控制,http等. 什么是会话控制思想,http协议. cookie 和 session http是超文本传输协议,是网络上最广泛的一种网络协议. http最大特点是无连接 ...

  6. spring的核心组件及作用(一)

    Spring的核心组件有: Context     Core     Bean. 如果要在这三个核心组件上挑出一个最核心的组件,那就是Bean组件了. Spring的特性功能有:WEB ORM AOP ...

  7. mysql的学习笔记(五)

    1.子查询,出现在其他SQL语句的SELECT子句 SELECT * FROM t1 WHERE col1=(SELECT col2 FROM t2); 第一个SELECT称为外层查询,第二个称为子查 ...

  8. 详解IPTABLES

    详解IPTABLES Iptables 是Linux 内核集成的 IP 信息包过滤系统.如果Linux 系统连接到因特网或 LAN.服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Li ...

  9. Ambiguous HTTP method Actions require an explicit HttpMethod binding for Swagger 2.0

    异常内容 NotSupportedException: Ambiguous HTTP method for action . Actions require an explicit HttpMetho ...

  10. 上传图片截图预览控件不显示cropper.js 跨域问题

    上传图片到图片服务器,因为域名不同,多以会有跨域问题. No 'Access-Control-Allow-Origin' header is present on the requested reso ...