目的是运行多个ruby和rails版本
apt-get install git-core ...3个,参考我博客其他文章
apt-get curl
安装RVM详见:https://rvm.beginrescueend.com/rvm/install/照着做。
如果是Multi-user,rvm会被自动安装到/usr/local/rvm,否则会被安装到/home/zj/.rvm
在source ~/.bash_profile 这是刷新设置。如果这一步报错:-bash: /root/.bash_profile: No such file or directory
解决:touch .bash_profile
vim .bash_profile内容如下:
注意下面的$HOME你echo下看看,如果是Multi-user,则$HOME/.rvm应该被替换为:/usr/local/rvm
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function
改好后再source ~/.bash_profile
其实这个是使得RVM在命令行中有了启动项。产看所有启动项用echo $PATH
返回:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/rvm/bin
发现有/usr/local/rvm/bin说明是OK的
RVM安装好后安装RUBY,然后安装rails
rvm install 1.9.3
rvm use 1.9.3
rvm gemset create rails3.1.0
rvm --default use
[email protected]#设为默认,但我的server上没能成功,和安装有关?
rvm current 当前
rvm gemset list列出所有gemset
下面看我另外一篇文章,介绍RVM的。
目前rails版本3.1,而locomotiveCMS要求rails3.0.10
这时rvm就上场啦。
安装见:https://rvm.beginrescueend.com/rvm/install/
使用见https://rvm.beginrescueend.com/gemsets/basics/
简述如下,下面都是命令:
$ bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer
)
如果是包curl未安装,就apt-get install curl
如果还报错,就按照http://help.github.com/linux-set-up-git/的说明把git安装一下。
$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
$ source .bash_profile
这时候rvm装好了,但一些RVM需要的一些东东还没装。
$ rvm notes
查看并按照
$rvm requirements
的说明安装:
zj@zhangjian:/usr/bin$ sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion
安装ruby1.9.2:
$ rvm 1.9.2 这是切换到1.9.2下,并且是global模式,在这下面安装的gem被1.9.2下的所有gemset共享。我建议你把openssl也装以下,否则locomotiveCMS用到的一些gem中会报错:no such file to load — openssl。到时後你得$ rvm remove 1.9.2再重装,要花半个多小时。
方法如下:
$ rvm pkg install openssl 这个RVM不认系统中的openssl,要通过这样的方式装到archive中才行,这句话如果报错,说明$rvm requirements做好,按照上面的写法做好。
$ rvm remove 1.9.2
$ rvm install 1.9.2 -C --with-openssl-dir=$HOME/.rvm/usr
$ rvm list 查看目前有的ruby版本
$ rvm 1.9.2 --default 设置它为默认版本
安装rails 3.0.10
https://rvm.beginrescueend.com/rubies/rubygems/ 这个链接是描述了rvm和rubygems的关系,有个命令很好用:$ rvm gemdir,可以显示当前gem install会被装到何处。
注意:不要再安装rubygems了,因为在安装rvm的时候会自动把rubygems安装好!如gem install总是报错:
$ gem install rails -v 3.1.0
ERROR: Could not find a valid gem 'rails' (= 3.1.0) in any repository
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
too many connection resets (http://production.s3.rubygems.org/latest_specs.4.8.gz)
或者dependencies找不到的错误
如果报如上错误,我不知到是什么原因,在一台新机器上报这个错,我怀疑是我在安装UBUNTU的时候下载更新,后来又取消了,只是瞎猜。在另外一台机器上不报。所以我就把那台好的机器上的硬盘拆下来放到新机器上使用,居然没有任何的不兼容,ubuntu系统真好呀,:-)
然后:
$ gem install rails --version=3.0.10
注意不能加sudo,因为rvm会把他们装到/home/zj/.rvm/gems/
[email protected]下,RVM就是利用这种手段使得各版本保持独立性。$ rails -v出现以下错误就是因为加了sudo
/usr/local/lib/site_ruby/1.8/rubygems/dependency.rb:247:in `to_specs': Could not find rails (>= 0) amongst [bundler-1.0.18] (Gem::LoadError)
from /usr/local/lib/site_ruby/1.8/rubygems/dependency.rb:256:in `to_spec'
from /usr/local/lib/site_ruby/1.8/rubygems.rb:1210:in `gem'
from /usr/bin/rails:18
$ rvm gemset create rails3.0.10 必须创建gemset,然后才可以用!显示:
'rails3.0.10' gemset created (/home/zj/.rvm/gems/[email protected]).
[b]$ rvm use [email protected][/b] 切换至,去掉use也是一样的
$ rvm [email protected] --default 设为默认gemset
$rvm info
global下的是通用的,共享的,因此,有时候我们会rvm 1.9.2,来gem install,这样就能够共用了。
如果要几个ruby版本同时安装,则用rvm 1.8.7,1.9.2 do gem install ,否则rvm不要加,表示在当前ruby版本或者gemset下安装。切忌不要用任何sudo
详见https://rvm.beginrescueend.com/gemsets/basics/
参考文章:
https://rvm.beginrescueend.com/gemsets/using/
http://www.douban.com/note/92636671/