前段时间,公司让我帮同事安装ruby on rails 开发环境,由于自己以前没有接触过ruby ,所以只有自己先学习再帮同事安装,所以说第一次安装开发环境的童鞋,你桑不起啊.
言归正传,在ubuntu上 安装ruby环境的话,有的人是手动编译,不用rvm这个管理工具,这就要看个人喜好了.
好,那 我们就开始。(注意:在安装前,最好用普通用户权限安装,不要再root权限下安装)
改下更新源 文件里的源 sudo gedit /etc/apt/sources.list
然后 sudo apt-get update
sudo apt-get upgrade
一、安装curl和git
1sudo apt-get install curl
2sudo apt-get install git-core
二、安装RVM
RVM(Ruby Version Manager)是Ruby版本管理系统,可以方便的帮我们安装和管理多个版本的Ruby
$ bash < <( curl http://rvm.beginrescueend.com/releases/rvm-install-head )
如果命令前没有带sudo,会安装到~/.rvm/, 只能供当前用户使用。
如果命令前面加了sudo,会安装到/usr/local/rvm,供多用户使用。
你会注意到,在输出信息中有一段警告,要求我们修改 .bashrc 文件。请用任意文本编辑器打开 ~/.bashrc 文件,找到包含有如下文字的一行: [ -z "$PS1" ] && return 删除这行文字(必须删除,注释无效),并改为: if [ -n "$PS1" ]; then 然后在文件的结尾添加下面的两行: fi [ -s "$HOME/.rvm/scripts/rvm" ] && source "$HOME/.rvm/scripts/rvm" 之所以要修改 .bashrc 文件,是因为 RVM 将作为 Shell 函数使用,我们需要在初始化 Shell 时(如打开终端窗口或执行某个命令)加载 RVM。你可以打开一个新的终端窗口,输入下面的命令来判断 RVM 是否安装成功: $ type rvm | head -n1 如果返回 “rvm is a function”/rvm是一个函数,则说明一切正常。 更新rvm (如需要) $ rvmupdate--head&&rvmreload 看需求可以同时安装多个版本的 Ruby(安装一个版本的话,只需用其中一个版本的ruby即可) RVM 采用类似 BSD 的安装方式,当我们要求安装某个版本的 Ruby 时,它会当场下载源代码并在本机编译安装。作为准备工作,我们需要安装 C 语言编译器和一些开发函数库: $ sudo apt-get install build-essential bison openssl libreadline5 libreadline-dev curl git-core zlib1g zlib1g-dev libssl-dev vim libsqlite3-0 libsqlite3-dev sqlite3 libreadline5-dev libreadline6-dev libxml2-dev git-core subversion autoconf 现在可以安装 Ruby 了,我们打算安装 1.8.7 和 1.9.2 两个版本: $ rvm install 1.8.7 $ rvm install 1.9.2 请注意,由于安装过程需要编译代码,时间可能会比较长(要看机器性能)。一旦完成,我们可以输入下面的命令查看系统中已经安装的 Ruby 版本: $ rvm list rvm rubies ruby-1.8.7-p299 [ i386 ] ruby-1.9.2-rc2 [ i386 ] 在不同版本的 Ruby 间进行切换 切换 Ruby 相当简单,假如我们希望使用最新开发版,只要执行: $ rvm 1.9.2 或者 ¥rvm 1.8.7 你可以查看 Ruby 的版本号以确认: $ ruby -v ruby 1.9.2dev (2010-07-11 revision 28618) [i686-linux] 上面的切换方式是临时性的,如果关闭终端再重新打开,又会回到原先默认的 Ruby 版本。要设定某一版本为默认版本,可以执行: $ rvm 1.8.7 --default 这样的话任何时候打开新终端都会使用我们设定的默认版本。 如果在安装 RVM 之前我们已经在系统上安装了 Ruby,我们可以使用这个命令使用系统上原有的 Ruby 版本: $ rvm system 当然,也可以指定系统原有的 Ruby 为默认的版本: $ rvm system –default Gemsets RVM 可以根据某一类项目的需要,将 Ruby 和一组 Gems 看作一个整体,即 Gemsets。这个概念和 Bundler 很相似,只是 Bundler 并不包含 Ruby 的版本号,而 RVM 也不关心 Gems 之间的依赖关系。而事实上,在实际应用中,RVM 可以和 Bundler 完美地配合。 作为示例,我们先创建两个 Gemsets,分别用于 Rails 2.3 项目和 Rails 3 项目: $ rvm --create 1.8.7@rails2 $ rvm --create use 1.9.2@rails3rc 在创建 Gemsets 时,我们为它们分别取了个名字。名字包括两个部分,中间由“@”隔开,之前是 Ruby 的版本,之后是项目或项目类别的名称。我们一般称这样的 Gemsets 为 Named Gem Sets, 以区别于在上一节中介绍的仅包括 Ruby 版本号的无名环境。第二个命令中的 “use” 表示创建之后,当场切换到该 Named Gem Set。当然,我们还可以将某个 Named Gem Set 设为默认值: $ rvm --default use 1.9.2@rails3rc Named Gem Sets 为不同项目设置了一个相对隔离的环境。假设我们现在安装了一些 Gems(比如通过 Bundler),那么这些 Gems 仅在 1.9.2@rails3rc 环境下可见,与此同时,我们可以在 1.8.7@rails2 环境下安装另外一组 Gems,而这两组 Gems 之间绝对不会发生任何冲突。 关于gems 每个ruby解释器默认有一个名字为global的gemset,可以创建自己的gemset,通过rvm 1.8.7@gemset的方法来切换不同的gemset gems之间可以进行同步,支持export/import/copy等操作 安装 Rails 3 程序 请确定当前的 Named Gem Set 是 1.9.2@rails3rc: $ rvm use 1.9.2@rails3rc 安装rails,不要加sudo 在该环境下安装最新版的 Rails: $ gem install rails –pre (安装其他版本derails可以手动指定版本号 eg:$gem install rails -v 2.3.8 $gem install rails (默认最新版本)) 上面命令中的“--pre”表示安装未正式发布的版本,目前的最新版是 Rails 3 RC。另外,值得注意的是,由于 RVM 会把安装的 Gems 保存在用户目录下(如 ~/.rvm/gems/ruby-1.9.2-rc2/gems/), 所以不必在命令之前加 “sudo”。 编写第一个 Rails 3 程序 我们创建一个名为 blog 的新项目, 在 Rails 3 中,创建项目的命令发生了变化,如下所示: $ rails new blog $ cd blog 这时我们可以在项目根目录下的 Gemfile 文件中添加需要的 Gems,其中默认包括了 rails 和 sqlite3-ruby, 我们暂时保留默认设置,执行下面的命令安装: $ bundle install (这里进行bundle的时候,可以在) (如果使用mysql数据库,创建项目的时候,需要进行指定 eg:$rails blog -mysql ) 由于之前我们已经安装 rails,这条命令只会安装 sqlite3-ruby。 下面我们可以使用 scaffold 生成器生成一个简单的功能,注意和 Rails 2.3 版语法的差别: $ rails generate scaffold Post title:string content:text 和过去一样,生成数据表: $ rake db:migrate 最后开启服务器,请注意命令的变化: $ rails server 打开浏览器,访问网址 http://localhost:3000/posts,你将会看到熟悉的画面。 补充说明 上面的步骤适用于 Ubuntu 10.04,不确定是否同样适用于其它系统..请自行尝试