2010-07-26 16:29:54| 分类: ruby&rails|字号 订阅
1. 什么是RubyGems
RubyGems是一个库和程序的标准化打包以及安装框架,使得定位、安装、升级和卸载Ruby包变得容易。
1.1 RubyGems出现之前
1)、搜索互联网找到需要安装的Ruby程序
2)、搜索Ruby程序依赖的程序
3)、下载所有程序包
4)、按顺序安装
1.2 安装RubyGems
安装的RubyGems有三种方法
方法1) 使用ruby一步安装程序自带的RubyGems
在http://www.ruby-lang.org/zh_CN/中下载,针对windows平台的一步安装文件ruby186-26.exe,安装完毕系统就自带RubyGems,不过缺点就是版本比较低为0.9.4 。
方法2) 网上下载RubyGems的最新版本到本地,然后手动安装
在http://rubyforge.org/projects/rubygems/中下载RubyGems的最新版本(目前最新版本为1.3.1 ),在本地解压并执行ruby install.rb命令
方法3) 使用ruby一步安装程序自带的低版本RubyGems的升级功能
在命令行中输入gem install rubygems-update自动升级为最新版本(强烈推荐这种方法升级RubyGems)
1.3 从哪些途径能够了解到RubyGems
最简单的方法就是在命令行打gem help命令
第2种方法就是在http://docs.rubygems.org/中找到你需要的帮助文档(学习初期推荐使用第1种方法来了解RubyGems,后期强烈推荐第2种方法来学习,这样可以学到更多的有用的知识)
1.4 怎样利用好RubyGems的强大功能
现在网上用Ruby开发的开源项目非常多,大家可以到http://rubyforge.org这个网站中去看一下。基本上这里找到的项目都能使用RubyGems来(以上见解纯属个人看法,如有与事实不同概不负责)
2. Ruby Gems命令行参考手册
我学习ruby有一段时间,有一些新的想与大家分享,要学会ruby首先要学会怎么玩ruby。然而怎么玩ruby的第一步就是如何安装配置ruby的常用库。rubygems是ruby提供的一个非常有效配置ruby插件的工具。一开始接触rubygems的朋友非常头痛如何能学会rubygems他到底怎么操作,下面我来介绍一下如何来作rubygems的日常操作。
1)、查询
查询本地和远程安装的gem信息,这是你进入rubygems世界的第一步。了解本地的机器上到底装了哪些gems,远程的资源库中有哪些非常有趣的gems,用一条查询命令就可以全部搞定。不知道出于何种目的rubygems一共有三种查询的命令,晕。分别是gem query 、gem search 、gem list。通过分别使用我发现这三个命令基本上都一样。为了不浪费时间我建议大家日常使用就直接用gem query,他的好处就是可以支持正则表达式为查询条件过滤内容。由于网上的gem资源有很多如何来快速查询自己需要的内容就使用gem query吧。
1.1查询本地安装的gem,在命令行中打入gem query 或者是gem query -l。
1.2查询远程的可以提供下载使用的gem,在命令行中打入gem query -r 告诉rubygems查询远程的gem资源。
1.3使用关键字查询,这也是query命令的最厉害的地方支持正则表达式为条件的搜索。下图就是我们以record为关键字进行搜索
2)、安装gem
查询完了就可以安装自己所需要的gem了,命令很简单就是install,只要看到sucessfully的提示就可以了。
3)、卸载
安装了一段时间后一些gem不需要了,我们就可以用命令把他卸载了,只要看到sucessfully的提示就说明卸载成功了。
rubygems常用的命令就这3个很简单吧,如何深入使用这三个命令。接下来我准备用3次来分别详细介绍。
gem query的功能
1、 把查询结果以列表方式显示出来
2、可以设置是从本地还是从远程进行查询
3、可以设置查询的关键字
Usage: gem query [options] Options: -n, --name-matches REGEXP Name of gem(s) to query on maches the provided REGEXP -d, --[no-]details Display detailed information of gem(s) -l, --local Restrict operations to the LOCAL domain (default) -r, --remote Restrict operations to the REMOTE domain -b, --both Allow LOCAL and REMOTE operations
1)、使用-l或者--local为选项列出本地gem,其实gem query不加任何选项默认就是查询本地gem。
2)、使用-d或者--details列出gem的Description信息,可以对比一下上面的图片加上-d之后可以显示gem的名称、版本、作者、Rubyforge的网址、Homepage、安装gem的地址等一些详细的介绍,让你对这个gem有更多的了解
3)、使用-r或者--remote为选项列出远程gem信息。 远程的gem是很多开源组织或者个人以非赢利为目的把自己的项目发到www.rubyforge.org中,供大家下载使用。 所以经常使用-r为条件看看远程有哪些新增的或者非常有趣的项目,如果觉得不错就可以下载到本地安装。
4)、使用-b或者--both为选项列出本地和远程的gem信息(这个选项不会经常使用到)
5)、使用-n或者--name-matches为选项作gem名字搜索支持正则表达式为条件的搜索。下图就是搜索名称中带有record的gem
下面就是query最强大的地方支持正则表达式的特殊符合
每个gem项目基本上都是一些以非赢利为目的的个人和组织上传的,处于松散管理状态。如何能把gem项目更好的管理起来,RubyGems有一套自己的管理策略,从而规范大家的版本发布。
其实RubyGem的版本管理策略很简单的,我们经常可以使用gem query命令可以看到在gem包后面会跟一个或者多个由数字组成的字符串(3, 3.1, 3.14, 3.141, 3.1415),它到底代表了什么含义呢。至于在确定了需要安装gem的名称后如何选择我们需要的版本来安装在后面几天我会详细介绍。现在我们只要能做到理解这些数字的含义就可以了。
每个gem项目都有自己的生命周期,其实能利用RubyGems版本管理策略看懂各个gem项目版本之间的区别也是一件非常有意思的事情,让我们接下去看。
RubyGems版本依赖采用操作符 主版本.次版本.补丁 的形式发布的
上图说明了名字叫tinkerbell的gem项目现在主版本为0,次版本为0,补丁为4,what_does_this_error_mean-merb这个项目的主版本为0,此版本为0,补丁为3。从这些信息都表明这两个项目都是比较新的项目tinkerbell项目发到现在只有3个比较小的改动。接下来让我们看看RubyGems版本管理的
Version 0.0.1: gem项目最初的一个版本。
Version 0.0.2: 经过最初版本的发布后,修改了一些Bug对某些细节作了修改,所以只做补丁版本的改变。
Version 0.1.0: 在前一个版本的基础上改变了一些类方法,这些改动就不是修复补丁那么简单的了,所以有必要改变次版本号。
Version 1.0.0: 在一定范围内做了方法或者类的改变,应该改动是比较大的,所以需要改变主版本号。
简单吧,其实RubyGems的版本管理策略是非常简单而且行之有效的,已经成为了gem项目发布的一个规范了。
5.代理服务下如何使用gems
如果使用了代理服务,相关命令需要使用 -p 选项(设置了环境变量则不用-p),同时设置代理.
windows:
格式:set HTTP_PROXY=http://username:[email protected]:port
set HTTP_PROXY=http://yisl:[email protected]:80
gem install watir -p
linux:
格式:export HTTP_PROXY=http://username:[email protected]:port
export HTTP_PROXY=http://yisl:[email protected]:80
gem update –system
6. ruby+gem常用命令
ruby -v #查看ruby 版本
ruby -e 'require"watir"; puts Watir::IE::VERSION' #查看watir版本
gem -v #gem版本
gem update #更新所有包
gem update --system #更新RubyGems软件
gem install rake #安装rake,从本地或远程服务器
gem install rake --remote #安装rake,从远程服务器
gem install watir -v(或者--version) 1.6.2#指定安装版本的 (多谢 wpyily 提供)
gem uninstall rake #卸载rake包
gem list d #列出本地以d打头的包
gem query -n '[0-9]' --local #查找本地含有数字的包
gem search log --both #从本地和远程服务器上查找含有log字符串的包
gem search log --remoter #只从远程服务器上查找含有log字符串的包
gem search -r log #只从远程服务器上查找含有log字符串的包
gem help #提醒式的帮助
gem help install #列出install命令 帮助
gem help examples #列出gem命令使用一些例子
gem build rake.gemspec #把rake.gemspec编译成rake.gem
gem check -v pkg/rake-0.4.0.gem #检测rake是否有效
gem cleanup #清除所有包旧版本,保留最新版本
gem contents rake #显示rake包中所包含的文件
gem dependency rails -v 0.10.1 #列出与rails相互依赖的包
gem environment #查看gem的环境
使用方式
大概的準則是這樣子(我這邊一律用縮寫)
i 是安裝
7. 搭建属于自己的RubyGems服务器
RubyGems是一个用于Ruby的包管理工具,虽然并未包含在Ruby的发行版中,但是可以认为是事实上Ruby世界中标准的发布Ruby程序和库的工具,可以很方便的管理gem之间的依赖性。
如果你是在进行Open Source的Ruby程序开发,可以直接通过Rubyforge来发布gem。不过如果是自己的私有项目,可能就需要自己搭建一个Web server来进行gem的发布了。如果系统中已经安装了RubyGems的话,通过gem server (gem help server看看用法)就可以启动一个简单的gem发布的server。不过很可能的,你已经有一个Web Server在系统环境中了(如Apache Web Server),这个时候就通过以下的几个步骤可以完成把这个Web Server改造成为一个gem distribution server:
1) 建立一个发布目录,并设置Apache(或者其他的Web Server)使得这一目录能够通过Web访问。并在这一发布目录下建立一个名为gems的子目录。
比如我们在htdocs目录下建立一个目录dist,并建立一个gems子目录。
2) 拷贝打包好的gem到dist/gems目录中。
如拷贝 allmighty-1.0.gem 到htdocs/dist/gems目录中。
3) 在命令行界面中,进入dist目录,运行“gem generate_index .”(或gem generate_index -d .)(请注意最后的一个点,表示当前目录)。这一命令会对gems子目录中的所有gem建立一个索引文件yaml,并存放在dist目录下,以便可以通过gem install命令安装时查找。
4) You’re done~
在这之后,你就可以通过”gem install allmighty –source http://127.0.0.1:8808/dist/”命令来安装你新发布的gem了。
(先启动该httpServer:如webrick 可在命令行下打 gem server启动在8808 port 上面,將你這台機器裡面所有安裝的 gem 列出來,並且你可以快速的看到你所下載 gem 的 rdoc,相當的方便 )
5) 如果以后还有新的gem需要发布或者有新的版本的gem需要发布,请从步骤2)开始继续即可。
关于RubyGems,有一本很好的书,介绍了其使用、开发和发布等,有兴趣的话可以看看。
8. gem 本地安装
1).在gems目录下面找到所有需要更新的模块(如allmighty)
2).到rubyforge上下载该模块的安装包, 以.gem结束(allmighty-1.0.gem )
3).进入本地安装包目录, 运行 gem install allmighty-1.0.gem --local
4).你会发现 allmighty gems上已经更新了
注意要用rails console来做, 比较安全.
2010-07-26 16:29:54| 分类: ruby&rails|字号 订阅
1. 什么是RubyGems
RubyGems是一个库和程序的标准化打包以及安装框架,使得定位、安装、升级和卸载Ruby包变得容易。
1.1 RubyGems出现之前
1)、搜索互联网找到需要安装的Ruby程序
2)、搜索Ruby程序依赖的程序
3)、下载所有程序包
4)、按顺序安装
1.2 安装RubyGems
安装的RubyGems有三种方法
方法1) 使用ruby一步安装程序自带的RubyGems
在http://www.ruby-lang.org/zh_CN/中下载,针对windows平台的一步安装文件ruby186-26.exe,安装完毕系统就自带RubyGems,不过缺点就是版本比较低为0.9.4 。
方法2) 网上下载RubyGems的最新版本到本地,然后手动安装
在http://rubyforge.org/projects/rubygems/中下载RubyGems的最新版本(目前最新版本为1.3.1 ),在本地解压并执行ruby install.rb命令
方法3) 使用ruby一步安装程序自带的低版本RubyGems的升级功能
在命令行中输入gem install rubygems-update自动升级为最新版本(强烈推荐这种方法升级RubyGems)
1.3 从哪些途径能够了解到RubyGems
最简单的方法就是在命令行打gem help命令
第2种方法就是在http://docs.rubygems.org/中找到你需要的帮助文档(学习初期推荐使用第1种方法来了解RubyGems,后期强烈推荐第2种方法来学习,这样可以学到更多的有用的知识)
1.4 怎样利用好RubyGems的强大功能
现在网上用Ruby开发的开源项目非常多,大家可以到http://rubyforge.org这个网站中去看一下。基本上这里找到的项目都能使用RubyGems来(以上见解纯属个人看法,如有与事实不同概不负责)
2. Ruby Gems命令行参考手册
我学习ruby有一段时间,有一些新的想与大家分享,要学会ruby首先要学会怎么玩ruby。然而怎么玩ruby的第一步就是如何安装配置ruby的常用库。rubygems是ruby提供的一个非常有效配置ruby插件的工具。一开始接触rubygems的朋友非常头痛如何能学会rubygems他到底怎么操作,下面我来介绍一下如何来作rubygems的日常操作。
1)、查询
查询本地和远程安装的gem信息,这是你进入rubygems世界的第一步。了解本地的机器上到底装了哪些gems,远程的资源库中有哪些非常有趣的gems,用一条查询命令就可以全部搞定。不知道出于何种目的rubygems一共有三种查询的命令,晕。分别是gem query 、gem search 、gem list。通过分别使用我发现这三个命令基本上都一样。为了不浪费时间我建议大家日常使用就直接用gem query,他的好处就是可以支持正则表达式为查询条件过滤内容。由于网上的gem资源有很多如何来快速查询自己需要的内容就使用gem query吧。
1.1查询本地安装的gem,在命令行中打入gem query 或者是gem query -l。
1.2查询远程的可以提供下载使用的gem,在命令行中打入gem query -r 告诉rubygems查询远程的gem资源。
1.3使用关键字查询,这也是query命令的最厉害的地方支持正则表达式为条件的搜索。下图就是我们以record为关键字进行搜索
2)、安装gem
查询完了就可以安装自己所需要的gem了,命令很简单就是install,只要看到sucessfully的提示就可以了。
3)、卸载
安装了一段时间后一些gem不需要了,我们就可以用命令把他卸载了,只要看到sucessfully的提示就说明卸载成功了。
rubygems常用的命令就这3个很简单吧,如何深入使用这三个命令。接下来我准备用3次来分别详细介绍。
gem query的功能
1、 把查询结果以列表方式显示出来
2、可以设置是从本地还是从远程进行查询
3、可以设置查询的关键字
Usage: gem query [options] Options: -n, --name-matches REGEXP Name of gem(s) to query on maches the provided REGEXP -d, --[no-]details Display detailed information of gem(s) -l, --local Restrict operations to the LOCAL domain (default) -r, --remote Restrict operations to the REMOTE domain -b, --both Allow LOCAL and REMOTE operations
1)、使用-l或者--local为选项列出本地gem,其实gem query不加任何选项默认就是查询本地gem。
2)、使用-d或者--details列出gem的Description信息,可以对比一下上面的图片加上-d之后可以显示gem的名称、版本、作者、Rubyforge的网址、Homepage、安装gem的地址等一些详细的介绍,让你对这个gem有更多的了解
3)、使用-r或者--remote为选项列出远程gem信息。 远程的gem是很多开源组织或者个人以非赢利为目的把自己的项目发到www.rubyforge.org中,供大家下载使用。 所以经常使用-r为条件看看远程有哪些新增的或者非常有趣的项目,如果觉得不错就可以下载到本地安装。
4)、使用-b或者--both为选项列出本地和远程的gem信息(这个选项不会经常使用到)
5)、使用-n或者--name-matches为选项作gem名字搜索支持正则表达式为条件的搜索。下图就是搜索名称中带有record的gem
下面就是query最强大的地方支持正则表达式的特殊符合
每个gem项目基本上都是一些以非赢利为目的的个人和组织上传的,处于松散管理状态。如何能把gem项目更好的管理起来,RubyGems有一套自己的管理策略,从而规范大家的版本发布。
其实RubyGem的版本管理策略很简单的,我们经常可以使用gem query命令可以看到在gem包后面会跟一个或者多个由数字组成的字符串(3, 3.1, 3.14, 3.141, 3.1415),它到底代表了什么含义呢。至于在确定了需要安装gem的名称后如何选择我们需要的版本来安装在后面几天我会详细介绍。现在我们只要能做到理解这些数字的含义就可以了。
每个gem项目都有自己的生命周期,其实能利用RubyGems版本管理策略看懂各个gem项目版本之间的区别也是一件非常有意思的事情,让我们接下去看。
RubyGems版本依赖采用操作符 主版本.次版本.补丁 的形式发布的
上图说明了名字叫tinkerbell的gem项目现在主版本为0,次版本为0,补丁为4,what_does_this_error_mean-merb这个项目的主版本为0,此版本为0,补丁为3。从这些信息都表明这两个项目都是比较新的项目tinkerbell项目发到现在只有3个比较小的改动。接下来让我们看看RubyGems版本管理的
Version 0.0.1: gem项目最初的一个版本。
Version 0.0.2: 经过最初版本的发布后,修改了一些Bug对某些细节作了修改,所以只做补丁版本的改变。
Version 0.1.0: 在前一个版本的基础上改变了一些类方法,这些改动就不是修复补丁那么简单的了,所以有必要改变次版本号。
Version 1.0.0: 在一定范围内做了方法或者类的改变,应该改动是比较大的,所以需要改变主版本号。
简单吧,其实RubyGems的版本管理策略是非常简单而且行之有效的,已经成为了gem项目发布的一个规范了。
5.代理服务下如何使用gems
如果使用了代理服务,相关命令需要使用 -p 选项(设置了环境变量则不用-p),同时设置代理.
windows:
格式:set HTTP_PROXY=http://username:[email protected]:port
set HTTP_PROXY=http://yisl:[email protected]:80
gem install watir -p
linux:
格式:export HTTP_PROXY=http://username:[email protected]:port
export HTTP_PROXY=http://yisl:[email protected]:80
gem update –system
6. ruby+gem常用命令
ruby -v #查看ruby 版本
ruby -e 'require"watir"; puts Watir::IE::VERSION' #查看watir版本
gem -v #gem版本
gem update #更新所有包
gem update --system #更新RubyGems软件
gem install rake #安装rake,从本地或远程服务器
gem install rake --remote #安装rake,从远程服务器
gem install watir -v(或者--version) 1.6.2#指定安装版本的 (多谢 wpyily 提供)
gem uninstall rake #卸载rake包
gem list d #列出本地以d打头的包
gem query -n '[0-9]' --local #查找本地含有数字的包
gem search log --both #从本地和远程服务器上查找含有log字符串的包
gem search log --remoter #只从远程服务器上查找含有log字符串的包
gem search -r log #只从远程服务器上查找含有log字符串的包
gem help #提醒式的帮助
gem help install #列出install命令 帮助
gem help examples #列出gem命令使用一些例子
gem build rake.gemspec #把rake.gemspec编译成rake.gem
gem check -v pkg/rake-0.4.0.gem #检测rake是否有效
gem cleanup #清除所有包旧版本,保留最新版本
gem contents rake #显示rake包中所包含的文件
gem dependency rails -v 0.10.1 #列出与rails相互依赖的包
gem environment #查看gem的环境
使用方式
大概的準則是這樣子(我這邊一律用縮寫)
i 是安裝
7. 搭建属于自己的RubyGems服务器
RubyGems是一个用于Ruby的包管理工具,虽然并未包含在Ruby的发行版中,但是可以认为是事实上Ruby世界中标准的发布Ruby程序和库的工具,可以很方便的管理gem之间的依赖性。
如果你是在进行Open Source的Ruby程序开发,可以直接通过Rubyforge来发布gem。不过如果是自己的私有项目,可能就需要自己搭建一个Web server来进行gem的发布了。如果系统中已经安装了RubyGems的话,通过gem server (gem help server看看用法)就可以启动一个简单的gem发布的server。不过很可能的,你已经有一个Web Server在系统环境中了(如Apache Web Server),这个时候就通过以下的几个步骤可以完成把这个Web Server改造成为一个gem distribution server:
1) 建立一个发布目录,并设置Apache(或者其他的Web Server)使得这一目录能够通过Web访问。并在这一发布目录下建立一个名为gems的子目录。
比如我们在htdocs目录下建立一个目录dist,并建立一个gems子目录。
2) 拷贝打包好的gem到dist/gems目录中。
如拷贝 allmighty-1.0.gem 到htdocs/dist/gems目录中。
3) 在命令行界面中,进入dist目录,运行“gem generate_index .”(或gem generate_index -d .)(请注意最后的一个点,表示当前目录)。这一命令会对gems子目录中的所有gem建立一个索引文件yaml,并存放在dist目录下,以便可以通过gem install命令安装时查找。
4) You’re done~
在这之后,你就可以通过”gem install allmighty –source http://127.0.0.1:8808/dist/”命令来安装你新发布的gem了。
(先启动该httpServer:如webrick 可在命令行下打 gem server启动在8808 port 上面,將你這台機器裡面所有安裝的 gem 列出來,並且你可以快速的看到你所下載 gem 的 rdoc,相當的方便 )
5) 如果以后还有新的gem需要发布或者有新的版本的gem需要发布,请从步骤2)开始继续即可。
关于RubyGems,有一本很好的书,介绍了其使用、开发和发布等,有兴趣的话可以看看。
8. gem 本地安装
1).在gems目录下面找到所有需要更新的模块(如allmighty)
2).到rubyforge上下载该模块的安装包, 以.gem结束(allmighty-1.0.gem )
3).进入本地安装包目录, 运行 gem install allmighty-1.0.gem --local
4).你会发现 allmighty gems上已经更新了
注意要用rails console来做, 比较安全.