安装Rails 4.0 beta

2012年12月16日 21:56

首先当然要按照先前的《Fedora / Debian 用 RVM 安装 Ruby on Rails 最新版本》先安装RVM和Ruby 1.9.3,Rails 3.2.9(Ruby至少依赖到1.9.3哦,至于安装Rails 3.2.9,是因为似乎Rails 4.0的部分组件依然在依赖3.2.9的Rails组件,挺奇怪的),然后

git clone https://github.com/rails/rails.git

下载rails源码,接着,运行一次

bundle install

安装所有依赖的gem(务必保证所有gem都要安装成功),接着运行

ruby install.rb 4.0.0.beta

额,理论上这样安装应该是成功的,但是实际上当我运行install.rb的时候,却出现了如下错误:

Installing activesupport...
Installing activemodel...
Installing activerecord...
ERROR:  While executing gem ... (Gem::DependencyError)
    Unable to resolve dependencies: activerecord requires activerecord-deprecated_finders (= 0.0.1)
Installing actionpack...
ERROR:  While executing gem ... (Gem::DependencyError)
    Unable to resolve dependencies: actionpack requires journey (~> 2.0.0)
Installing actionmailer...
ERROR:  While executing gem ... (Gem::DependencyError)
    Unable to resolve dependencies: actionmailer requires actionpack (= 4.0.0.beta)
Installing railties...
ERROR:  While executing gem ... (Gem::DependencyError)
    Unable to resolve dependencies: railties requires actionpack (= 4.0.0.beta)
Installing Rails...
ERROR:  While executing gem ... (Gem::DependencyError)
    Unable to resolve dependencies: activemodel requires activesupport (= 3.2.9); rails requires actionpack (= 4.0.0.beta), activerecord (= 4.0.0.beta), actionmailer (= 4.0.0.beta), railties (= 4.0.0.beta); sprockets-rails requires actionpack (>= 3.0)

很奇怪,虽然bundle install完全安装成功了,但是这些明明出现在Gemfile中的gem却没有安装成功,我的解决方案是,额,手动再安装一遍:

cd `rvm gemdir`/bundler/gems
for f in `ls`; do cd `pwd`/$f; gem build *.gemspec; gem install *.gem; done

这样就可以了

最后运行下

rails -v
# Rails 4.0.0.beta

看到4.0.0 beta就算OK了

不过这样似乎还不足以创建一个新的Rails 4.0 App,你必须再安装好新的coffee-rails 4.0.0.beta和sass-rails 4.0.0.beta,这两个项目你依然需要通过git clone下两个项目的源码,bundle install(在运行这句命令前最好把Gemfile中的几个github项目勾掉,每次都下载一遍实在太慢了),然后gem build *.gemspec,gem install *.gem后才能安装成功。

快尝试创建一个Rails 4的项目吧:

然后在玩玩Live Stream这个Rails 4的新特性,看着SSE数据流连续不断的送到浏览器,帅爆了呢~

RubyGem Introduction

2012年10月15日 00:53

这是我下次做关于RubyGem Presentation的Slides,这次花了较多的时间来准备,因为一直感觉做不到太多的可以讲的素材,如果只是按照Team Leader的要求讲如何写一个RubyGem,我五分钟就可以讲完了,这样就不是很有意思了。后来由于掌握了一些阅读Rails源码的技巧,发现RubyGem和GemBundler的运作原理绝对是个不错的演讲题材,因此在制作这个Slides的过程中,我一方面自己翻阅资料,阅读源码,另一方面放了些小提示进去,启发大家思考,鼓励大家也通过阅读源码来彻底的了解RubyGem这个东西。

不过按照Team Leader对Slides简单但蕴涵深度的要求,我不会把更多信息放在Slides里,而是准备在演示时带着大家找到问题的答案。

通过做Slides,我自己也学习了很多,了解了很多,还发现了Ruby Plugin这样一个未知领域,呵呵,说不定我下一个目标就是它了!

本文记录如何使用RVM,而不是Yum和APT,安装最新版本Ruby on Rails。之所以不用Yum和APT,是因为Fedora的Yum源,Debian的deb源都没有Ruby 1.9.2。

首先,浏览:https://rvm.beginrescueend.com/ 获取Quich install内的安装RVM的方法,这个安装方法可能随着时间的推移而改变,目前安装方法是:

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

在运行安装命令之前,请确定务必满足这三个要求:

bash >= 3.2 is required
curl is required
git is required (>= 1.7 recommended)

如果没有满足,可以运行:

yum install -y bash curl git

你还需要安装这些以满足Ruby on Rails的要求,如果不安装,编译后的rubygems可能会有问题。

yum install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel
apt-get 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 libc6-dev ncurses-dev

运行并确保这句语句存在于.bashrc和.bash_profile的最后

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

确保这个语句存在于.rvmrc的最后

export rvm_pretty_print_flag=1

用RVM安装Ruby最新版本(1.9.2)(如果遭遇网络问题请自行解决)

rvm install 1.9.2

查看RVM目前管理的所有的Ruby版本

rvm list

命令RVM使用Ruby的最新版本(ruby-1.9.2-p290)

rvm use ruby-1.9.2-p290

完成后,检查version

ruby -v

如果能显示出版本,表示ruby安装已经成功,下面开始准备安装rails,我们将使用rubygems来安装

首先,创建一个gemset

rvm --create use 1.9.2@rails3

默认使得这个gemset

rvm --default use 1.9.2@rails3

下面安装rails,建议先升级gem,可能可以避免一些错误出现

gem update --system
gem update
gem install rails

安装完成后,检查version

rails -v

如果能显示出版本,表示rails已经安装成功,赶紧创建一个项目,体现了Ruby on Rails的快感吧!

本文根据 http://www.wretch.cc/blog/yschu7/13353264 整理并精简部分不必要的内容

如果是Ubuntu / Debian 用户,还可以阅读 http://coding.smashingmagazine.com/2011/06/21/set-up-an-ubuntu-local-development-machine-for-ruby-on-rails/,写得比我更详细些。