rubygems源码包(Ruby开发)
本文目录一览:
- 1、如何安装Ruby和RubyGems
- 2、opennebula是用什么开发的
- 3、下载RubyGems,然后运行"Ruby setup.rb",这样可以吗,没有setup这个文件啊
- 4、如何创建自己的ruby gem包
- 5、Ruby Gems不能连接到国内镜像,怎么回事???
- 6、如何修改Ruby的gem源
如何安装Ruby和RubyGems
如何安装 Ruby 和 RubyGems
Tags: 教程rubyvmcGemfile Last Updated: 2012-09-28
以下章节介绍关于如何在 Windows 和各种 Linux 计算机上安装 Ruby 和 RubyGems 的基本信息。
Windows
下载和安装 Windows 的 Ruby 安装程序。该安装程序中已经包括 RubyGems。 您在随后安装和使用 vmc 时请务必使用支持 Ruby 的命令提示符窗口。您可以通过 Windows“开始”菜单访问此命令提示符(“所有程序” Ruby 版本 “使用 Ruby 启动命令提示符”)。 最后,通过以下 Ruby 命令提示符更新 RubyGems: prompt gem update --system
对 Windows Gemfile 的支持
安装 Ruby 后,请阅读 Cloud Foundry 上的 Ruby 应用程序中的说明,以了解关于推送应用程序和使用 Gemfile 的详细信息 Windows 用户需注意以下问题:
在 Windows 机器上生成 Gemfile.lock 时,其中包含的 gem 会采用 Windows 特定的版本。 mysql2、thin 和 pg 等 gem 版本的最后包含有“x86-mingw32”。 例如,在 Windows 机器上使用以下 Gemfile 运行 bundle install 时: gem ‘sinatra’ gem ‘mysql2’ gem ‘json’
将生成以下 Gemfile.lock 文件: GEM
remote: specs:
json (1.7.3)
mysql2 (0.3.11-x86-mingw32) rack (1.4.1)
rack-protection (1.2.0) rack
sinatra (1.3.2)
rack (~ 1.3, = 1.3.6) rack-protection (~ 1.2) tilt (~ 1.3, = 1.3.3) tilt (1.3.3)
PLATFORMS
x86-mingw32
DEPENDENCIES json mysql2 sinatra
现在,Cloud Foundry 将能够可靠安装这类 gem 而不必修改 Gemfile.lock
Mac OS X
Mac OS X 的 10.5 和更高版本出厂时已经安装了 Ruby 和 RubyGems。 如果您正在使用较早版本的 Mac OS,请先下载和安装最新版本的 Ruby,然后再安装 RubyGems。
Ubuntu
在终端上用 apt-get 命令行工具安装 Ruby 和 RubyGems 时的步骤如下: 1. 安装整个 Ruby 包和 RubyGems:
prompt$ sudo apt-get install ruby-full rubygems
有关 sudo 命令的任何必要的身份验证凭据,请咨询您的系统管理员。 2. 通过测试以确保您的路径中有 gem 命令: prompt$ which gem
如未找到该命令,请相应的更新 PATH 变量。例如,可使用以下命令行更新您的 .bashrc 文件:
export PATH=$PATH:/var/lib/gems/1.8/bin 3. 更新 RubyGems: Ubuntu 10.04
prompt$ sudo gem install rubygems-update
prompt$ sudo /var/lib/gems/1.8/bin/update_rubygems Ubuntu 11.10
prompt$ sudo su -
prompt# export REALLY_GEM_UPDATE_SYSTEM=true prompt# gem update --system prompt# exit
RedHat/Fedora
在终端上用 yum 命令行工具安装 Ruby 和 RubyGems 时的步骤如下: 1. 安装 Ruby:
prompt$ sudo yum install ruby
2. 如果您正在使用 RedHat Enterprise Linux 6,请可选 登录 Red Hat Network (RHN) 启用您主机的通道。 3. 安装 RubyGems:
prompt$ sudo yum install rubygems
Centos
在终端上用 yum 命令行工具安装 Ruby 和 RubyGems 时的步骤如下: 1. 安装基本的 Ruby 包: prompt$ yum install -y ruby 2. 安装其他 Ruby 包和文档:
prompt$ yum install -y ruby-devel ruby-docs ruby-ri ruby-rdoc 3. 安装 RubyGems:
opennebula是用什么开发的
增加 CentOS Karan 源:
# cd /etc/yum.repos.d
# wget
# yum update
安装 OpenNebula 需要的软件包以及编译 OpenNebula 源代码所需的工具:
# yum install gcc gcc-c++ make openssl-devel flex bison
# yum install ruby ruby-devel ruby-docs ruby-ri ruby-irb ruby-rdoc
# yum install rubygems
# gem install nokogiri rake xmlparser
# yum install scons
# yum install xmlrpc-c xmlrpc-c-devel
CentOS 自带的 sqlite 版本不行,需要下载和编译 sqlite 3.6.17 版本:
# wget
# tar xvzf sqlite-amalgamation-3.6.17.tar.gz
# cd sqlite-3.6.17/
# ./configure; make; make install
下载和编译 opennebula 2.0.1 源码包后,解压、编译和安装:
# tar zxvf opennebula-2.0.1.tar.gz
# cd opennebula-2.0.1
# scons
# ./install.sh -d /srv/cloud/one
# ls /srv/cloud/one/
bin etc include lib share var
下载RubyGems,然后运行"Ruby setup.rb",这样可以吗,没有setup这个文件啊
当然不可以了
解决方案1:
1)你直接这样Ruby setup.rb,ruby会到他的工作目录里面去找,肯定没有了。
如果你想这样用,在cmd中,要用cd命令,切到setup.rb的文件夹下面,再运行Ruby setup.rb
解决方案2:
2)如果不用cd切换当前目录
直接运行ruby setup.rb的全路径 也可以
如何创建自己的ruby gem包
1. 建好如下文件夹
注意:lib目录下必须有个和你gem名字一样的rb文件。
[ruby] view plaincopy
$ cd hola
$ tree
.
├── hola.gemspec
└── lib
└── hola.rb
2. 编写代码
. hola.rb
[ruby] view plaincopy
% cat lib/hola.rb
class Hola
def self.hi
puts "Hello world!"
end
end
.hola.gemspec
[ruby] view plaincopy
% cat hola.gemspec
Gem::Specification.new do |s|
s.name = 'hola'
s.version = '0.0.0'
s.date = '2010-04-28'
s.summary = "Hola!"
s.description = "A simple hello world gem"
s.authors = ["Nick Quaranto"]
s.email = 'nick@quaran.to'
s.files = ["lib/hola.rb"]
s.homepage =
''
end
这里面可以设置很多属性。我会专门写篇文章介绍。
上面字段的意思,比较简单。相信大家都能理解。
3.编译生成gem
[ruby] view plaincopy
% gem build hola.gemspec
Successfully built RubyGem
Name: hola
Version: 0.0.0
File: hola-0.0.0.gem
% gem install ./hola-0.0.0.gem
Successfully installed hola-0.0.0
1 gem installed
4.测试使用
[ruby] view plaincopy
% irb
require 'hola'
= true
Hola.hi
Hello world!
注意:在ruby 1.9.2之前到版本里面,需要先require 'rubygem',才能使用我们写的gem.
5.发布到rubygems网站
[ruby] view plaincopy
$ curl -u tom
~/.gem/credentials
Enter host password for user 'tom':
设定完之后发布
[ruby] view plaincopy
% gem push hola-0.0.0.gem
Pushing gem to RubyGems.org...
Successfully registered gem: hola (0.0.0)
发布成功。
这样任何一个人都可以使用你写的gem了。
稍微复杂的rubygem例子
上面的例子只有一个ruby文件,一般gem应该没有这么简单的。
下面说下有多个ruby文件该怎么写。
1. 目录结构
多了个hola目录和translator.rb文件
[ruby] view plaincopy
% tree
.
├── hola.gemspec
└── lib
├── hola
│ └── translator.rb
└── hola.rb
2. 代码
lib/hola/translator.rb
[ruby] view plaincopy
% cat lib/hola/translator.rb
class Hola::Translator
def initialize(language)
@language = language
end
def hi
case @language
when :spanish
"hola mundo"
else
"hello world"
end
end
end
lib/hola.rb
[ruby] view plaincopy
% cat lib/hola.rb
class Hola
def self.hi(language = :english)
translator = Translator.new(language)
translator.hi
end
end
require 'hola/translator'
.hola.gemspec
[ruby] view plaincopy
% cat hola.gemspec
Gem::Specification.new do |s|
s.name = 'hola'
s.version = '0.0.0'
s.date = '2010-04-28'
s.summary = "Hola!"
s.description = "A simple hello world gem"
s.authors = ["Nick Quaranto"]
s.email = 'nick@quaran.to'
s.files = ["lib/hola.rb", "lib/hola/translator.rb"]
s.homepage =
''
end
红色是和上面不一样的地方。
其他步骤和上面一样了。很简单吧!
最后说下怎么写个 gem包含可执行文件的例子。
这个也很简单。像rake就是典型的包含可执行文件的gem.
1. 在刚才工程目录下建个bin文件夹
生成可执行文件,并且修改权限为可运行。
[ruby] view plaincopy
% mkdir bin
% touch bin/hola
% chmod a+x bin/hola
2. 修改可执行文件内容
bin/hola
[ruby] view plaincopy
#!/usr/bin/env ruby
require 'hola'
puts Hola.hi(ARGV[0])
测试下
[ruby] view plaincopy
% ruby -Ilib ./bin/hola
hello world
% ruby -Ilib ./bin/hola spanish
hola mundo
3 .最后修改gemspec
[ruby] view plaincopy
% head -4 hola.gemspec
Gem::Specification.new do |s|
s.name = 'hola'
s.version = '0.0.1'
s.executables 'hola'
其他就和上面一样了。很简单吧。
Ruby Gems不能连接到国内镜像,怎么回事???
由于国内网络原因(你懂的),导致 rubygems.org 存放在 Amazon S3 上面的资源文件间歇性连接失败。所以你会与遇到 gem install rack 或 bundle install的时候半天没有响应,具体可以用 gem install rails -V 来查看执行过程。
这是一个完整 rubygems.org 镜像,你可以用此代替官方版本,同步频率目前为15分钟一次以保证尽量与官方服务同步。
如何使用?
$ gem sources --add --remove
$ gem sources -l
*** CURRENT SOURCES ***
# 请确保只有 ruby.taobao.org
$ gem install rails
如果你使用 Gemfile 和 Bundle (例如:Rails 项目)
你可以用 Bundler 的 Gem 源代码镜像命令。
$ bundle config mirror.
这样你不用改你的 Gemfile 的 source。
source ''
gem 'rails', '4.1.0'
...
如何修改Ruby的gem源
Ruby环境下的gem sources地址默认是国外网络地址,所以在使用gem的过程中经常会出现找不到资源的Error。那么如何解决这种Error?方法很简单:要么就多次尝试执行gem命令,要么就修改gem源地址。
下面由小河给大家分享:如何修改Ruby的gem源地址。
注:无论是在windows系统上还是在linux系统上其修改方式一样,以CentOS6.4为例。
工具/原料
Ruby
gem源(gem sources)
CentOS6.4
方法/步骤
进入Centos6.4系统。
◆示例是以Centos6.4系统为例。
◆若是windows系统则进入“命令提示符”做修改。
查看当前使用的源地址。
◆输入:gem sources
删除默认的源地址。
◆输入:gem sources -r url地址
注:默认的url地址后必须有”/”,否则删不掉。
添加淘 宝的源地址。
◆输入:gem sources -a url地址
注:国内使用淘 宝的源比较稳定,且安装或更新网速都比较快。
更新源的缓存
◆输入:gem sources -u
更新源的缓存后即完成了Ruby的gem源修改。