在Mac下如何设定Rails的默认版本?

54次阅读

以及如何删除不需要的Rails版本?

freemem

考虑使用Ruby Version Manager(RVM)来安装和快速切换多个版本的Ruby和Gem:
http://rvm.io/

Linjie_Ding

rvm是一个命令行工具,可以提供一个便捷的多版本ruby环境的管理和切换。

https://rvm.io/

如果你打算学习ruby/rails, rvm是必不可少的工具之一。

这里所有的命令都是再用户权限下操作的,任何命令最好都不要用sudo.

rvm安装
$ curl -L get.rvm.io | bash -s stable
$ source ~/.bashrc
$ source ~/.bash_profile
ruby的安装与切换
列出已知的ruby版本
rvm list known
安装一个ruby版本
rvm install 1.9.3
这里安装了最新的1.9.3, rvm list known列表里面的都可以拿来安装。

使用一个ruby版本
rvm use 1.9.3
如果想设置为默认版本,可以这样

rvm use 1.9.3 –default
查询已经安装的ruby
rvm list
卸载一个已安装版本
rvm remove 1.9.2
gemset的使用
rvm不仅可以提供一个多ruby版本共存的环境,还可以根据项目管理不同的gemset.

gemset可以理解为是一个独立的虚拟gem环境,每一个gemset都是相互独立的。

比如你有两个项目,一个是rails 2.3 一个是 rails 3. gemset可以帮你便捷的建立两套gem开发环境,并且方便的切换。

gemset是附加在ruby语言版本下面的,例如你用了1.9.2, 建立了一个叫rails3的gemset,当切换到1.8.7的时候,rails3这个gemset并不存在。

建立gemset
rvm use 1.8.7
rvm gemset create rails23
然后可以设定已建立的gemset做为当前环境
use 可以用来切换语言,或者gemset,前提是他们已经被安装(或者建立)。并可以在list命令中看到。

rvm use 1.8.7
rvm use 1.8.7@rails23
然后所有安装的gem都是安装在这个gemset之下。

列出当前ruby的gemset
rvm gemset list
清空gemset中的gem
如果你想清空一个gemset的所有gem,想重新安装所有gem,可以这样

rvm gemset empty 1.8.7@rails23
删除一个gemset
rvm gemset delete rails2-3
项目自动加载gemset
rvm还可以自动加载gemset.

例如我们有一个rails3.1.3项目,需要1.9.3版本ruby.整个流程可以这样。

rvm install 1.9.3
rvm use 1.9.3
rvm gemset create rails313
rvm use 1.9.3@rails313
下面进入到项目目录,建立一个.rvmrc文件。

在这个文件里可以很简单的加一个命令:

rvm use 1.9.3@rails313
然后无论你当前ruby设置是什么,cd到这个项目的时候,rvm会帮你加载 ruby 1.9.3和rails313 gemset.

使用rvm来快速部署nginx+passenger

  1. 首先安装passenger

gem install passenger
然后使用passenger-install-nginx-module 来安装nginx和部署。

因为这一步需要root权限(因为要编译nginx)可以用rvmsudo这个东西。(这个东西真是个好东西)

rvmsudo passenger-install-nginx-module
然后会让你选择是下载nginx源码自动编译安装,还是自己选择nginx源码位置。

选择nginx手动安装的可以添加别的编译参数,方便自定义编译nginx。

然后一路下载安装。默认的安装位置为/opt/nginx.

然后看看nginx.conf,都给你配置好了,只需要加上root位置(yourapp/public)就可以了。

当我第一次安装完成了,就惊呼,这也太爽了吧。

ps:rvm是个好东西,做的很智能,(大部分)操作失败后会告诉你原因,然后告诉你需要安装哪些Lib等等,非常适合新手老手使用,简直是居家旅行必备良药。

lidashuang

一般开发环境在安装在/System/Library/Frameworks,然后安装时在/usr/bin 链接向指定版本,升级后只需更改/usr/bin下link指向即可;
比如:
in /usr/bin
ls -al|grep java 会看到
java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
link向Versions多个版本其中之一
比如python也是,同理Rails

log100

使用rvm,来管理Ruby的版本,在项目中加一个.ruby-version, 在里面直接写上如:2.0.0-p247
Rails的话在Gemfile中可以加如:gem 'rails', '3.12.13'

ericwu

正文完