Ubuntu, Ruby, RVM, Rails, and You-(Ubuntu安装Rails)

 

本文将教您如何在 Ubuntu 10.10上安装 Ruby 1.9.2RVM Rails 3.0.7 ,在其他操作系统上可能也可以工作,包括旧版本的UbuntuDebian

如果您想安装在生产服务器上(译注:本机开发也可以),我建议使用  the railsready script ,它会帮您安装Ruby 1.9.2p136,以及该版本所有必需的包,Bundler Rails。至于安装Apache还是Nginx应用服务器,取决于您。

 

如果您使用的不是 Ubuntu,可以尝试 Wayne E. Seguin's rails_bootstrap_script,这也能获得可以工作的 Rails ,尽管它(ruby)的版本是 1.8.7,而不是 1.9.2

 

决不要用apt-get安装 Ruby Rubygems Ruby相关的任何包。这不但已过时,而且还会产生让人头痛的事情。不要让它和Ruby的包有关联。我们是开发Ruby的,我们知道怎么做才是最好的。相信我们。

 

还不确定?读一下这篇文章.

 

本文首先安装的是 RVM (Ruby 版本管理器),,然后是Ruby (1.9.2),再然后是 Rails,最后是 Bundler.

 

本文结束时,您就可以安装好这些东西。对于不同的应用程序/库,您可以用非常简单的方法来管理gem 依赖。此外,您还可以同时安装、使用多个不同版本的Ruby

 

我们假设您在计算机上有sudo权限,并且您对Ruby已经有基本的了解,比如"Rubygems 是什么?"。这些基础知识可以阅读Ruby相关的书来获取.

 

Housekeeping

 

首先,我们运行 sudo apt-get update ,使我们的资源最新的。这样,我们就可以避免包关联的问题,比如不能安装某些包。

 

接下来,我们安装Git (一个版本控制系统)curl RVM的安装和使用需要使用到它们,还有build-essential用来编译 Ruby。为了安装这三个包,我们使用以下命令:

    sudo apt-get install build-essential git-core curl

 

RVM

 

RVM Wayne E. Seguin创建的Ruby 版本管理器,用于安装和管理多个不同版本的 Ruby 。您以前的项目需要使用(1.8.7),而现在的新项目又要用(1.9.2)?RVM可以很好的解决这个问题。

 

在同一个Ruby版本上您有着不同的gem设置,但又难以处理混乱的Gem冲突?看看RVM gemsets。如果您使用打包的Ruby这功能您不会有。

 

我们仅用它来安装一个版本的Ruby,但通过查看参考文档可以帮助我们安装多个不同版本的Ruby.

 

git-corecurl安装好后,我们可以使用以下命令安装 RVM

 

    bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

 

这有一个好处,它安装到我们的主目录——只为我们提供一个沙箱环境的Ruby

 

一旦完成,我们需要将命令行添加到 ~/.bashrc文件(该文件负责设置我们的bash 会话),便于加载RVM

 

    echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"' >> ~/.bashrc

 

然后,我们需要用命令重新加载 ~/.bashrc 文件:

 

    . ~/.bashrc

(译注:RVM 的安装重要,它决定了下面的步骤能否进行!!!实际安装过程中,建议查看官方博客 https://rvm.beginrescueend.com/rvm/install/)

下一条命令将告诉我们,为了让Ruby能够正常工作,我们还需要安装哪些包:

    rvm notes

...

# For Ruby (MRI & ree)  you should install the following OS dependencies:

ruby: aptitude install build-essential bison openssl libreadline6 libreadline6-dev

curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0

libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf

 

有几个包我们已经安装好了,如git-corecurl。它们不会被重新安装。

 

当我们使用 Ruby时,这些包将会给我们提供很大方便。例如, libssl-dev包能让 OpenSSL 支持 Ruby 工作, libsqlite3-0 libsqlite3-devsqlite3-ruby gem所必需的;libxml2-devlibxslt-dev包是nokogiri gem所必需的。现在让我们用下面这条命令来安装所有的这些包:

 

    sudo aptitude install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib1g

zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf

(译注:若aptitude安装不了,可以尝试一下apt-get ;并且通过阅读官方博客,我们可以通过终端显示的‘提示’安装另外一些必需的包)

 

此命令 * 必须 * 写在一行上,否则有一些包安装不了。

 

下面我们的Ruby生活就是轻松的了。

 

Ruby

 

有了RVM和上面所说的包,我们可以这样安装 Ruby 1.9.2:

 

    rvm install 1.9.2

 

此命令会花几分钟时间(译注:很长时间)。完成后,我们就安装好 Ruby 1.9.2 了。若要开始使用它,我们可以使用这个可爱的命令:

 

    rvm use 1.9.2

 

我们正在使用 1.9.2 吗?试一下:

 

    ruby -v

ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-linux]

 

还有更好的,我们可以设置为该用户默认!

 

    rvm --default use 1.9.2

 

以后每当我们以该用户打开 bash 会话,我们就能自由的使用Ruby ! 耶!

 

Rails

 

现在, RVM Ruby已经安装好,我们再来安装Rails。因为RVM安装在我们的主目录,所以我们不需要使用sudo 就能安装——我们有权限。安装Rails gem,用下面这条命令:

 

    gem install rails

 

这会安装 rails gem 以及和它相关/依赖的22 gem,包括Bundler(译注:根据网络原因有时不能安装,可以挂上vpn或者改天再试一下).

(译注:若到这一步安装失败,可能是由于某种原因不能安装。重新安装可以参考: http://www.iloopai.com/blogs/11)

 

MySQL

 

如果您打算在应用程序上使用mysql2 gem…您需要安装libmysqlclient16-dev包。没有它,当gem试图编译它为本机扩展时就(可能)会报错:

 

Building native extensions.  This could take a while...

ERROR:  Error installing mysql2:

        ERROR: Failed to build gem native extension.

 

/home/ryan/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb

checking for rb_thread_blocking_region()... yes

checking for mysql_query() in -lmysqlclient... no

checking for main() in -lm... yes

checking for mysql_query() in -lmysqlclient... no

checking for main() in -lz... yes

checking for mysql_query() in -lmysqlclient... no

checking for main() in -lsocket... no

checking for mysql_query() in -lmysqlclient... no

checking for main() in -lnsl... yes

checking for mysql_query() in -lmysqlclient... no

checking for main() in -lmygcc... no

checking for mysql_query() in -lmysqlclient... no

*** extconf.rb failed ***

Could not create Makefile due to some reason, probably lack of

necessary libraries and/or headers.  Check the mkmf.log file for more

details.  You may need configuration options.

 

PostgreSQL

 

类似于mysql2 gem出现的上述错误,如果您没有安装libpq-dev包,您的pg gem(可能)会报错:

 

Building native extensions.  This could take a while...

ERROR:  Error installing pg:

        ERROR: Failed to build gem native extension.

 

/home/ryan/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb

checking for pg_config... no

checking for libpq-fe.h... no

Can't find the 'libpq-fe.h header

*** extconf.rb failed ***

Could not create Makefile due to some reason, probably lack of

necessary libraries and/or headers.  Check the mkmf.log file for more

details.  You may need configuration options.

 

Fin.

 

OK~~!现在已有一个Ruby环境,您可以毫不费力地写您的(第一个?)Rails应用程序。在这之后看看Ruby on Rails 官方指南或者rvm site 帮忙文档您会得到一些非常有用的东东,gemsetsper-project .rvmrc file如何在项目目录里快速生成一个.rvmrc文件?可以使用下面命令:

 

    rvm use 1.9.2@rails3 --rvmrc

 

RVM 是一个功能强大的工具,能够方便我们进行日常的Ruby开发。使用它,而不是apt ,让编程生活更美好。

 

Credits

 

多谢krainboltgreene指出,这篇文章需要安装 rvm note所指定的包。他写了和本文类似的write up here for Ubuntu 10.04。受他帖子的“启发”,才有了本文中的一些操作。

原文链接:http://ryanbigg.com/2010/12/ubuntu-ruby-rvm-rails-and-you/

转载请注明出处:kelby

posted @ 2011-10-12 12:49  kelby  阅读(1126)  评论(0编辑  收藏  举报