Ubuntu, Ruby, RVM, Rails, and You

作者: kelby
发布时间:2015-07-13 11:27:38

本文将教您如何在 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

下一条命令将告诉我们,为了让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

 

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

 

下面我们的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.

 

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。受他帖子的“启发”,才有了本文中的一些操作。

 

 

标签: Rails Ruby Ubuntu
来源:http://www.cnblogs.com/kelby/articles/2206661.html

推荐: