rvm的安裝, 使用rvm, 安裝ruby, 以及gem的使用 (轉)

http://blog.163.com/digoal@126/blog/static/1638770402012425111617904/java


rvm 全稱Ruby Version Manager,  確實是一個很是好用的ruby版本管理以及安裝工具.node

下面介紹一下rvm的安裝, 使用rvm, 安裝ruby, 以及gem的使用.
1、安裝rvm
官方網站上介紹得很簡單, 可是使用官方網站安裝會出現問題, SSL的問題. 因此我分兩步進行, 第一步下載安裝腳本. 第二步修改安裝腳本. 第三步安裝.
如下介紹的是使用root用戶在CentOS中安裝rvm的過程.
1. 下載腳本到ins文件中. 注意使用了curl的-k選項, 由於地址是https的. 不加-k會報異常.

[root@db-172-16-3-33~]# curl -k https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer >./insgit


2. 修改ins腳本中的curl都加上-k不然會沒法使用.
vi ins
須要修改兩處curl.
curl -sk https://api.github.com/repos/wayneeseguin/rvm/tags
if curl -kL ${_url} -o ${rvm_archives_path}/${_file}

3. 使用修改後的ins腳本安裝rvm
[root@db-172-16-3-33~]# cat ins|bash -s stable
輸出結果 : 
Downloading RVM from wayneeseguin branch stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1023k  100 1023k    0     0   173k      0  0:00:05  0:00:05 --:--:--  383k
 
Installing RVM to /usr/local/rvm/
    Creating RVM system user group'rvm'
 
# RVM:  Shell scripts enabling management of multiple ruby environments.
# RTFM: https://rvm.io/
# HELP: http://webchat.freenode.net/?channels=rvm (#rvm on irc.freenode.net)
# Cheatsheet: http://cheat.errtheblog.com/s/rvm/
# Screencast: http://screencasts.org/episodes/how-to-use-rvm
 
# In case of any issues read output of 'rvm requirements' and/or 'rvm notes'
 
Installation of RVM in/usr/local/rvm/is almost complete:
 
  *First you need to add all users that will be using rvm to 'rvm'group,
    and logout - login again, anyone using rvm will be operating with`umask g+w`.
 
  *To start using RVM you need to run `source /etc/profile.d/rvm.sh`
    in all your open shell windows,in rare cases you need to reopen all shell windows.
 
# root,
#
#   Thank you for using RVM!
#   I sincerely hope that RVM helps to make your life easier and more enjoyable!!!
#
# ~Wayne

4. 修改root 下的環境變量
vi ~/.bash_profile
export PATH=/usr/local/rvm/bin:/opt/git1.7.10.2/bin:$PATH
更新環境變量.
.~/.bash_profile
這裏就安裝完rvm

2、rvm的使用, 簡單的介紹一下
[root@db5 ~]# rvm list help
 
  Usage:
 
    rvm list [action]
 
  Actions:
 
  {help,known,gemsets,default[string],rubies,strings,known_strings,ruby_svn_tags}

1. 列出rvm管理的軟件及版本
[root@db5 ~]# rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-p358]
[ruby-]1.8.7-head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2-p180
[ruby-]1.9.2-p290
[ruby-]1.9.2-p318
[ruby-]1.9.2[-p320]
[ruby-]1.9.2-head
[ruby-]1.9.3-preview1
[ruby-]1.9.3-rc1
[ruby-]1.9.3-p0
[ruby-]1.9.3-p125
[ruby-]1.9.3-[p194]
[ruby-]1.9.3-head
ruby-head
 
# GoRuby
goruby
 
# TheCodeShop - MRI experimental patches
tcs
 
# JRuby
jruby-1.2.0
jruby-1.3.1
jruby-1.4.0
jruby-1.6.5
jruby-1.6.5.1
jruby-1.6.6
jruby-1.6.7
jruby[-1.6.7.2]
jruby-head
jruby-1.7.0.preview1
 
# Rubinius
rbx-1.0.1
rbx-1.1.1
rbx-1.2.3
rbx-1.2.4
rbx[-head]
rbx-2.0.testing
 
# Ruby Enterprise Edition
ree-1.8.6
ree[-1.8.7][-2012.02]
 
# Kiji
kiji
 
# MagLev
maglev[-head]
maglev-1.0.0
 
# Mac OS X Snow Leopard Or Newer
macruby[-0.10]
macruby-nightly
macruby-head
 
# IronRuby -- Not implemented yet.
ironruby-0.9.3
ironruby-1.0-rc2
ironruby-head

3、使用RVM安裝ruby
從上面的輸出咱們能看到rvm管理的ruby版本中包含了當前的穩定版1.9.3-p194, 接下來就安裝這個版本.
可是注意, 使用rvm安裝的話須要聯網, 怎麼辦呢? 能夠不聯網嗎? 可能不能夠, 由於要得到依賴關係什麼的, 可是能夠提早下載好安裝包房到archives目錄下, 這樣能夠省去下載包的過程.
1. 聯網安裝
[root@db5 ~]# rvm install ruby-1.9.3-p194
輸出
Fetching yaml-0.1.4.tar.gz to /usr/local/rvm/archives
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  460k  100  460k    0     0  91728      0  0:00:05  0:00:05 --:--:--  190k
Extracting yaml-0.1.4.tar.gz to /usr/local/rvm/src
Prepare yaml in /usr/local/rvm/src/yaml-0.1.4.
Configuring yaml in /usr/local/rvm/src/yaml-0.1.4.
Compiling yaml in /usr/local/rvm/src/yaml-0.1.4.
Installing yaml to /usr/local/rvm/usr
Installing Ruby from source to: /usr/local/rvm/rubies/ruby-1.9.3-p194, this may take a while depending on your cpu(s)...
 
ruby-1.9.3-p194 -#fetching 
ruby-1.9.3-p194 - #downloading ruby-1.9.3-p194, this may take a while depending on your connection...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
.... 略
到安裝rubygems的時候會出錯, 沒法獲取版本號. 因此須要手工安裝rubygems.
-- 下載rubygems錯誤,貌似版本信息沒有獲取到.
Retrieving rubygems-
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 404
The requested url does not exist: 'http://production.cf.rubygems.org/rubygems/rubygems-.tgz'
Trying ftp:// URL instead.
CTRL+C退出
-- 手動安裝rubygems, 見第3步

2. 下載好包後放到archives目錄下再安裝
若是下載太慢, 也能夠先下載好yaml-0.1.4.tar.gz, ruby-1.9.3-p194.tar.bz2 放在/usr/local/rvm/archives下面
而後執行
rvm install ruby-1.9.3-p194

3. 安裝rubygems
下載rubygems安裝包.

wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.24.tgzgithub

解壓

tar -zxvf rubygems-1.8.24.tgzweb

放到一個目錄, (可選)

mv rubygems-1.8.24/usr/local/rvm/src/redis

cd /usr/local/rvm/src/rubygems-1.8.24
--因爲是rvm管理的ruby環境,因此在安裝rubygems前,先轉到對應的ruby 環境,--default表示設置爲默認的ruby環境
[root@db-172-16-3-33 rubygems-1.8.24]# rvm use ruby-1.9.3-p194 --default
Using /usr/local/rvm/gems/ruby-1.9.3-p194
幹了什麼呢? 弄了個軟連接.
[root@db5 rubies]# pwd /usr/local/rvm/rubies [root@db5 rubies]# ll total 4.0K lrwxrwxrwx 1 root rvm 37May2510:47default->/usr/local/rvm/rubies/ruby-1.9.3-p194 drwxr-xr-x 6 root rvm 4.0KMay2511:34 ruby-1.9.3-p194
--安裝rubygems
[root@db-172-16-3-33 rubygems-1.8.24]# ruby setup.rb 
輸出結果
RubyGems 1.8.24 installed
 
==1.8.24/2012-04-27
 
*1 bug fix:
 
  *Install the .pem files properly.Fixes#320
  * Remove OpenSSL dependency from the http code path
 
 
------------------------------------------------------------------------------
 
RubyGems installed the following executables:
        /usr/local/rvm/rubies/ruby-1.9.3-p194/bin/gem

4. 列出當前rvm管理的軟件
[root@db5 ruby-1.9.3-p194]# rvm list
 
rvm rubies
 
=*/usr/local/rvm/scripts/list: line 294:/usr/local/rvm/rubies/ruby-1.9.3-p194/config:No such file or directory
ruby-1.9.3-p194 [  ]
 
# => - current
# =* - current && default
#  * - default

5. 從新安裝

rvm reinstall ruby-1.9.3-p194shell


6. 移除已安裝的軟件

rvm remove ruby-1.9.3-p194windows


4、gem的使用介紹
1.  源管理,添加淘寶源
[root@db5 soft_bak]# gem source --add 'http://ruby.taobao.org/'
http://ruby.taobao.org/ added to sources
[root@db5 soft_bak]# gem source -l
*** CURRENT SOURCES ***
 
http://rubygems.org/
http://ruby.taobao.org/
2. 更新源cache
[root@db5 soft_bak]# gem source -u
source cache successfully updated

3. 查看源裏有哪些軟件
gem query -r -a
--也可以使用規則表達式
[root@db5 soft_bak]# gem query -r -n 'redis'
 
*** REMOTE GEMS ***
 
active-redis (0.1.0 ruby)
adapter-redis (0.5.1 ruby)
bayes_on_redis (0.2.2 ruby)
bayes_on_redis_internal (0.0.1 ruby)
cache-machine-redis (0.0.1 ruby)
cs-em-hiredis (0.1.2 ruby)
datalogger-redis (0.0.2 ruby)
datastore_redis (0.0.8 ruby)
dm-redis-adapter (0.6.2 ruby)
dsander-redis (1.0.6 ruby)
dsander-redis-store (0.3.8 ruby)
easyredis (0.0.6 ruby)
em-hiredis (0.1.1 ruby)
em-redis (0.3.0 ruby)
em-redislite (0.2.2 ruby)
eventmachine-redis (0.1.3 ruby)
extraloop-redis-storage (0.0.12 ruby)
eycloud-recipe-redis (0.2.0 ruby)
fakeredis (0.3.1 ruby)
faye-redis (0.1.0 ruby)
feedzirra-redis (0.1.1 ruby)
fluent-plugin-redis (0.2.0 ruby)
goncalossilva_redis-session-store (0.1.8.1 ruby)
guard-redis (0.1.0 ruby)
hiera-redis (0.1.3 ruby)
hiera-redis-backend (0.0.1 ruby)
hiredis (0.4.5 ruby java java)
honkster-redis-store (0.3.16 ruby)
i18n_redis (0.0.2 ruby)
integration_test_redis (0.0.2 ruby)
jashmenn-redis-lock(0.1.1 ruby)
joffice_redis (0.1.1 ruby)
kali-redis (0.1.1 ruby)
mlanett-redis-lock(0.1.1 ruby)
mock_redis (0.4.1 ruby)
namespaced_redis (1.0.2 ruby)
newrelic-redis (1.3.2 ruby)
nono-redis-store (1.0.0 ruby)
opengotham_redis-namespace(0.4.4 ruby)
openid-redis-store (0.0.2 ruby)
orm-redis (0.0.0 ruby)
qu-redis (0.1.4 ruby)
rack-session-redis (0.0.3 ruby)
rails3-redis-session-store (0.3.0 ruby)
rails_redis_cache (0.2.0 ruby)
redis (3.0.0 ruby)
redis-actionpack (3.2.3 ruby)
redis-activesupport (3.2.3 ruby)
redis-aid (0.1.0 ruby)
redis-cache (1.0.1 ruby)
redis-classy (1.0.2 ruby)
redis-column (0.0.3 ruby)
redis-connection-ssl (0.0.1 ruby)
redis-connection-universal (0.0.1 ruby)
redis-diff_match_patch (1.1.1 ruby)
redis-dump(0.3.2 ruby)
redis-expiring-set(0.1.2 ruby)
redis-expiring_counter (1.0.0.0 ruby)
redis-friendships (0.2 ruby)
redis-health (0.0.1 ruby)
redis-i18n (0.6.0 ruby)
redis-load (0.2 ruby)
redis-lock(0.1.0 ruby)
redis-messages (0.1 ruby)
redis-mmm (0.1.1 ruby)
redis-model (0.1.3 ruby)
redis-model-extension (0.3.3 ruby)
redis-mutex (1.2.3 ruby)
redis-namespace(1.1.0 ruby)
redis-native_hash (0.2.1 ruby)
redis-objective (0.1.0 ruby)
redis-objects (0.5.2 ruby)
redis-orm (0.0.4 ruby)
redis-persistence (0.0.7 ruby)
redis-rack (1.4.1 ruby)
redis-rack-cache (1.2 ruby)
redis-rails (3.2.3 ruby)
redis-repeater (0.2.6 ruby)
redis-retry(0.1.0 ruby)
redis-roc (0.5.3 ruby)
redis-scheduler (0.4 ruby)
redis-scripted (0.0.3 ruby)
redis-search (0.8.0 ruby)
redis-semaphore (0.1.1 ruby)
redis-server (0.0.5 ruby)
redis-session-store (0.1.9 ruby)
redis-settings (0.2.1 ruby)
redis-sinatra (1.3.2 ruby)
redis-slave (0.0.3 ruby)
redis-spawn (0.0.5 ruby)
redis-store (1.1.0 ruby)
redis-structured-multi (0.0.2 ruby)
redis-textsearch (0.2.0 ruby)
redis-timeline (0.1.6 ruby)
redis-types (0.1.7 ruby)
redis-ui (0.1.3 ruby)
redis2-session-store (0.0.3 ruby)
redis_autocomplete (0.1.4 ruby)
redis_buddy (1.0.0 ruby)
redis_cache (0.0.1 ruby)
redis_cache_mailer_delivery (0.0.6 ruby)
redis_directory (1.0.4 ruby)
redis_failover (0.8.3 ruby)
redis_feature_control (0.0.2 ruby)
redis_feed (0.0.1 ruby)
redis_geo (0.0.0 ruby)
redis_knock (0.0.2 ruby)
redis_logger (0.1.0 ruby)
redis_master_slave (0.0.1 ruby)
redis_on_heroku (0.0.1 ruby)
redis_orm (0.6.2 ruby)
redis_props (0.3 ruby)
redis_record (0.0.1 ruby)
redis_resque_initializer (0.0.1 ruby)
redis_ring (0.1.3 ruby)
redis_ring_client (0.1.2 ruby)
redis_selector (0.1.0 ruby)
redis_session_store (0.0.2 ruby)
redis_snippets (0.0.5 ruby)
redis_status (0.1.1 ruby)
redis_storage (0.4.0 ruby)
redis_store_jr (0.2.1 ruby)
redis_support (0.0.18 ruby)
redis_throttle (0.1.0 ruby)
redis_voteable (0.1.2 ruby)
redis_wrapper (0.2.0 ruby)
redis_wrapper_rails (0.2.0 ruby)
redisarray (0.0.1 ruby)
rediscover (0.0.2 ruby)
redisearch (0.1.0 ruby)
redised (0.2.0 ruby)
redish (0.0.1 ruby)
redisk (0.2.2 ruby)
redislog (1.0.0 ruby)
redismapper (0.0.1 ruby)
redismodel (0.1.8 ruby)
redismq (0.0.6 ruby)
redisque (1.0.1 ruby)
redisrecord (0.1 ruby)
redisrpc (0.3.5 ruby)
redistat (0.5.0 ruby)
redisted (0.0.2 ruby)
redistry (0.1.3 ruby)
rspec-redis_helper (0.1.2 ruby)
ruby-redis (0.0.2 ruby)
ruby-redis-portertech (0.0.3 ruby)
ruby_redis_lock (0.1.0 ruby)
ruote-redis (2.2.0 ruby)
ryansch-mock_redis (0.3.0 ruby)
simple-redis-server (0.0.1 ruby)
simple_redis_cache (0.0.2 ruby)
simredis (0.0.5 ruby)
sinatra-redis (0.3.0 ruby)
sinatra-redis-auth (0.1.1 ruby)
sprockets-cache-redis (0.0.3 ruby)
superfeedr-em-redis (0.3.7 ruby)
synapse_redis_logger (0.1.0 ruby)
tavern-redis (0.0.2 ruby)
unified-redis (0.0.2 ruby)
uri-redis (0.4.2 ruby)
xlymian-redis-store (0.3.8 ruby)
yam-redis-with-retries (2.2.2.1 ruby)

4. 其餘gem命令
[root@db5 ~]# gem help commands
GEM commands are:
 
    build             Build a gem from a gemspec
    cert              ManageRubyGems certificates and signing settings
    check             Check installed gems
    cleanup           Clean up old versions of installed gems in the local
                      repository
    contents          Display the contents of the installed gems
    dependency        Show the dependencies of an installed gem
    environment       Display information about the RubyGems environment
    fetch             Download a gem and place it in the current directory
    generate_index    Generates the index files for a gem server directory
    help              Provide help on the 'gem' command
    install           Install a gem into the local repository
    list              Display gems whose name starts with STRING
    lock              Generate a lockdown list of gems
    outdated          Display all gems that need updates
    owner             Manage gem owners on RubyGems.org.
    pristine          Restores installed gems to pristine condition from files
                      located in the gem cache
    push              Push a gem up to RubyGems.org
    query             Query gem information inlocalor remote repositories
    rdoc              GeneratesRDocfor pre-installed gems
    search            Display all gems whose name contains STRING
    server            Documentationand gem repository HTTP server
    sources           Manage the sources and cache file RubyGems uses to search
                      for gems
    specification     Display gem specification (in yaml)
    stale             List gems along with access times
    uninstall         Uninstall gems from the local repository
    unpack            Unpack an installed gem to the current directory
    update            Update the named gems (or all installed gems)in the local
                      repository
    which             Find the location of a library file you can require
 
For help on a particular command,use'gem help COMMAND'.
 
Commands may be abbreviated, so longas they are unambiguous.
e.g.'gem i rake'isshortfor'gem install rake'.
相關文章
相關標籤/搜索