Ubuntu, Ruby, RVM, Rails, and You-(Ubuntu安装Rails)
本文将教您如何在 Ubuntu 10.10上安装 Ruby
如果您想安装在生产服务器上(译注:本机开发也可以),我建议使用 the railsready script ,它会帮您安装Ruby 1.9.2p136,以及该版本所有必需的包,Bundler 和 Rails。至于安装Apache还是Nginx应用服务器,取决于您。
如果您使用的不是 Ubuntu,可以尝试 Wayne E. Seguin's rails_bootstrap_script,这也能获得可以工作的 Rails ,尽管它(ruby)的版本是
决不要用apt-get安装 Ruby、 Rubygems 或Ruby相关的任何包。这不但已过时,而且还会产生让人头痛的事情。不要让它和Ruby的包有关联。我们是开发Ruby的,我们知道怎么做才是最好的。相信我们。
还不确定?读一下这篇文章.
本文首先安装的是 RVM (Ruby 版本管理器),,然后是Ruby (
本文结束时,您就可以安装好这些东西。对于不同的应用程序/库,您可以用非常简单的方法来管理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 。您以前的项目需要使用(
在同一个Ruby版本上您有着不同的gem设置,但又难以处理混乱的Gem冲突?看看RVM 的 gemsets。如果您使用打包的Ruby,这功能您不会有。
我们仅用它来安装一个版本的Ruby,但通过查看参考文档可以帮助我们安装多个不同版本的Ruby.
git-core和curl都安装好后,我们可以使用以下命令安装 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 zlib
libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf
有几个包我们已经安装好了,如git-core和curl。它们不会被重新安装。
当我们使用 Ruby时,这些包将会给我们提供很大方便。例如, libssl-dev包能让 OpenSSL 支持 Ruby 工作, libsqlite3-0 和libsqlite3-dev是sqlite3-ruby gem所必需的;libxml2-dev和libxslt-dev包是nokogiri gem所必需的。现在让我们用下面这条命令来安装所有的这些包:
sudo aptitude install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zlib
zlib
(译注:若aptitude安装不了,可以尝试一下apt-get ;并且通过阅读官方博客,我们可以通过终端显示的‘提示’安装另外一些必需的包)
此命令 * 必须 * 写在一行上,否则有一些包安装不了。
下面我们的Ruby生活就是轻松的了。
Ruby
有了RVM和上面所说的包,我们可以这样安装 Ruby
rvm install
此命令会花几分钟时间(译注:很长时间)。完成后,我们就安装好 Ruby
rvm use
我们正在使用
ruby -v
ruby 1.9.2p136 (
还有更好的,我们可以设置为该用户默认!
rvm --default use
以后每当我们以该用户打开 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-
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-
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 帮忙文档,您会得到一些非常有用的东东,如gemsets和per-project .rvmrc file。如何在项目目录里快速生成一个.rvmrc文件?可以使用下面命令:
rvm use
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