安装rvm
rvm的安装又分当前用户安装和多用户安装:
单用户安装就是某个用户安装在自己的home目录下,自己用,我觉得这样是不太好,多用户安装是root权限安装,各个用户可共享使用
单用户的安装命令
前提是先安装curl
$ \curl -L https://get.rvm.io | bash -s stable --ruby
多用户的安装命令
$ \curl -L https://get.rvm.io | sudo bash -s stable
执行命令
source /etc/profile.d/rvm.sh,加载rvm到环境中
安装依赖
rvm安装完毕之后,就是ruby的下载安装了
但是在此之前需要安装一下ruby的依赖包,诸如openssl之类的,否则以后会出现各种问题,重新安装也是大麻烦
$ rvm requirements
运行上面这个命令,又有一个提示,提示你安装各种版本的ruby(jruby)所依赖的东西,照这命令复制安装一通就可以了
安装ruby
rvm安装完毕之后,只要是联网,安装ruby就轻而易举了,另外如果不是联网,可以把ruby的安装包下载,放在rvm的指定目录下,也能安装
rvm install ruby
上面的命令会自动安装ruby的最新版本,要制定版本只需要把ruby改为1.9.3或者其他版本号就可以了
设置系统默认的版本
rvm use 2.0 --default
安装rails
ruby安装完毕之后,对用的gem般本也会相应的安装,安装rails的话,直接
gem install rails即可
补充:ubuntu环境下遇到了奇怪的问题,有时候环境变量也设置好了,但是终端中ruby,rails,rvm命令一概提示找不到,最后是需要设置终端的“登录”选项,详情见此处
http://chinacheng.iteye.com/blog/1738036
=============================旧文分割线======================================
安装ruby
ubuntu server10.10 中的ruby安装的默认版本是1.8.7
执行命令 即可安装
$ sudo apt-get install ruby
由于不同的项目使用的ruby版本、gem版本都不同,多个版本共存也不太现实。今天在网上看到了一个叫做RVM的工具,可以帮助来实现这个功能,再去看看这个东东出来的日期,发现自己真的有点过时了。
RVM的官方网址是 https://rvm.beginrescueend.com/
首先要求要安装一些依赖包
sudo apt-get install curl bison build-essential git-core zlib1g-dev libssl-dev libreadline5-dev libxml2-dev
使用脚本安装rvm
bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
安装完毕之后运行
rvm notes
提示找不到命令
需要修改一下文件 ~/.bashrc
在这个文件的最后一行添加如下信息
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session.
保存成功后
运行命令:
$ type rvm | head -n1
结果显示:
rvm 是一个函数
或者运行这个命令:
rvm notes
出来一大堆东西
安装ruby1.9.2
rvm install 1.9.2
切换版本的命令
rvm use 1.9.2
如果要设置为默认
rvm use 1.9.2 --default
系统中以前安装的是1.8.7
rvm use system
就是使用1.8.7版本的ruby
系统终于有了两个版本的ruby并且能够使用rvm进行切换
安装rails
但是安装rail的时候,出了一点问题
运行
$ gem install rails
不能正确的安装,出现的提示是gem没有安装,我有点困惑了,ruby都装完了,怎么可能没有安装gem呢?
系统提示如下
$ gem install rails
程序“gem”已包含在下列软件包中:
* rubygems1.8
* rubygems1.9.1
请尝试:sudo apt-get install <选定的软件包>
在安装rvm之前,我已经在系统上已经安装了ruby1.8.7 但是没有安装rubygem1.8
于是我安装rubygems1.8
$ sudo apt-get install rubygems
在我把当前的ruby版本设置为系统默认的时候,我尝试着在rvm中为ruby设置gem的版本,结果出现错误
$ rvm rubygems lastest
ERROR: Rubygems version may only be set for an RVM MRI based Ruby, please select one and rerun.
大体意思是,rvm只能为在rvm中安装的ruby设置gem版本
于是我设置rvm的ruby版本为1.9.2
然后运行的gem得到的版本 是gem 1.6.2
$rvm use system Now using system ruby. $ ruby -v ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-linux] $ gem -v 1.3.7 sudo gem install -v=2.3.8 rails sudo gem install -v=3.0.7 rails
安装了两个版本的rails
安装完毕之后运行rails命令
$ rails -v
结果是提示没有安装rails
这个时候需要建立一个软连接
sudo ln -s /var/lib/gems/1.8/bin/rails /usr/bin/rails $rails -v Rails 3.0.7
如果要去建立一个rails项目的话需要指定rails版本
rails _2.3.8_ test238 rails _3.0.7_ new test307 #(rails3开始,新建rails项目的命令发生了变化)
安装rails1.2.2 的时候出现了问题
$ sudo gem install -v=1.2.2 rails While executing gem ... (NoMethodError) undefined method `size' for nil:NilClass
这个问题的原因是gem中的缓存文件造成的
命令
$gem env
可以查看到gem的path路径
我得到的路径是:
GEM PATHS: - /var/lib/gems/1.8
进入这个目录下的cache目录,然后将所有的文件删除
在执行命令
$ sudo gem install -v=1.2.2 rails
安装成功
最后机器上安装了2个ruby环境,以及三个rails环境
gem list 看一下rails的版本
rails (3.0.7, 2.3.8, 1.2.2)
总之吧,每一次折腾都有新的收获