了解Ruby Gems
RubyGems是什么?官方解释是这样的:
A RubyGem is a software package, commonly called a “gem”. Gems contain a packaged Ruby application or library. The RubyGems software itself allows you to easily download, install, and manipulate gems on your system.
所谓RubyGem,就是一个个软件包,通常被简称为“gem”。通常一个Gem里包含一个Ruby应用程序或者一个Ruby程序库。而RubyGems软件本身允许用户在自己的系统中轻松地下载、安装、操作Gems。
以下两个网址无论如何都应该放到自己的收藏夹里:
- http://rubygems.org/
- http://guides.rubygems.org/
最著名的Gem之一,当然是Rails——当我们安装Rails的时候,使用的命令行是:
gem install rails
另外几个上来就可以玩玩的gems包括typo(一个博客程序),refinery(一个CMS程序),都可以在http://rubygems.org/里找到。
最常用的几个gem命令包括:
- gem build
- gem cert
- gem check
- gem cleanup
- gem contents
- gem dependency
- gem environment
- gem fetch
- gem generate_index
- gem help
- gem install
- gem list
- gem lock
- gem outdated
- gem owner
- gem pristine
- gem push
- gem query
- gem rdoc
- gem search
- gem server
- gem sources
- gem specification
- gem stale
- gem uninstall
- gem unpack
- gem update
- gem which
然而,与安装Ruby和Rails的时候我们更喜欢使用rvm一样,安装gems也可以使用rvm,因为rvm允许用户使用gemset(即,你可以针对不同的情况使用不同的gemset):
rvm gemset create global rvm gemset use global
如此生成的gemset是全局使用的。当然还可以生成自定义的gemset:
rvm gemset create YourGemsetName rvm gemset use YourGemsetName
注意:gemsets的信息被保存在~/.rvm文件中。
如果你想删除掉某个gemset,可以使用以下命令:
rvm gemset empty YourGemsetName
以后,如若你想在某个应用程序中使用某个特定的gemset,那么,可以在app目录下创建一个.rvmrc文件,内容为:
rvm use RUBY_VERSION@YOUR_GEMSET
例如:
rvm use 1.9.2@samplegemset
这样的话,再该应用程序目录中运行”bundle install”的时候,rvm会自动调用.rvmrc文件里指定的gemset。