1、RubyGems镜像
由于国内网络原因(你懂的),导致 rubygems.org 存放在 Amazon S3 上面的资源文件间歇性连接失败。所以你会与遇到
gem install rack
或 bundle install
的时候半天没有响应,具体可以用 gem install rails -V
来查看执行过程。
这是一个完整 rubygems.org 镜像,你可以用此代替官方版本,同步频率目前为15分钟一次以保证尽量与官方服务同步。
如何使用?
$ gem sources --remove https://rubygems.org/
$ gem sources -a http://ruby.taobao.org/
$ gem sources -l
*** CURRENT SOURCES ***
http://ruby.taobao.org
# 请确保只有 ruby.taobao.org
$ gem install rails
如果你是用 Bundle (Rails 项目)
source 'http://ruby.taobao.org/'
gem 'rails', '3.2.12'
...
2、RubyGems介绍
RubyGems 是 Ruby 社群最常使用的套件管理系統,如同 Perl 的 CPAN 或 Python 的 EasyInstall / pip,使用者可以很簡易地安裝及管理套件。與其它的套件管理系統一樣,RubyGems 也有版本與相依性管理。
RubyGems 大致可以分為兩個部份。一個是 gem 命令,另一個則是在 runtime 中管理可用的 gems 與其版本。在這篇淺談中,將不會介紹所有的功能與選項,使用者請自行參閱
gem help
。安裝
在 Ruby 1.9 之前,RubyGems 需要額外安裝,因為它不是官方的套件。而在 Ruby 1.9 之後,已被收錄至 Ruby 標準發行版中。差別在於收錄的版本可能比較舊。不過沒關係,因為 RubyGems 本身也可以由 RubyGems 散佈,因此只要先取得一份可以執行的 RubyGems,接著要管理都很容易。
01. Mac OS X
在 Mac OS X 中,雖然 Ruby 的版本是 1.8.7,但是 RubyGems 也已經預先裝好了。
02. Linux 發行版
在 Linux 上使用該發行版的套件管理系統即可。如果已是 Ruby 1.9 則不需要再安裝 RubyGems,若是較舊的 Ruby 1.8,通常 Linux 上的套件管理系統也有提供 RubyGems。
3、Bundler介绍
bundler主要用于管理Ruby应用程序的依赖关系,并按照此依赖关系安装所需的Gems。当运行bundle install命令来安装Gems时,bundler会使用当前目录下的名为Gemfile的文件来处理依赖关系。
以下是一个简单的Gemfile内容:
source "http://rubygems.org"
gem "nokogiri"
gem "rack", "~>1.1"
gem "rspec", :require => "spec"
文件第1行表明bundler会从http://rubygems.org下载Gems;第2行表明需要名为nokogiri的Gem;第3行表明需要名为rack的Gem,并且版本必须高于1.1;第4行表明rspec依赖于spec, 所以spec将先于rspec安装。
c编程样本
回复删除C中的3D图形