最近在搞Ruby On Rails 的学习,本想在苹果操作系统上学习的,后来想了下还是在Linux上吧,也是希望能够巩固一下Linux。
先说下我的环境:Red Hat Enterprise Linux 6.0 + Jdk 1.6 + ruby 1.8.7 + ree 1.8.7 2011.12 [1.8] + rails 3.1.1 + RubyMine 3.2.4 + mysql。
(一)安装Linux
我用的是vmware8.0虚拟机跑的,安装Linux时,当我把光盘镜像选择后,他会自动检测出我用的Linux版本,不是到是我没有找到还是没有把法选择,他会自动使用Easy Install, 通过简单的设置用户密码,自动安装操作系统。我就是用这种方式安装操作系统了,倒也很省事,不过就是root的密码是你向导里设置的密码。
(二)安装Ruby on Rails 环境
首先安装ruby, 然后是gem, 然后是 rails 。不过这之中有点小问题,那就是ruby以来yaml, gem需要readline, zlib, openssl ,需要先安装这些的依赖文件。
于是,先解决用yum安装这些,还有一个问题就是会出现“This system is not registered with RHN”错误。解决方案如下:
1.卸载rhel的默认安装的yum包
查看yum包
rpm -qa|grep yum
卸载之
rpm -qa|grep yum|xargs rpm -e --nodeps
2.下载新的yum包
wget http://centos.ustc.edu.cn/centos/6/os/i386/Packages/yum-3.2.29-22.el6.centos.noarch.rpm
wget http://centos.ustc.edu.cn/centos/6/os/i386/Packages/yum-metadata-parser-1.1.2-16.el6.i686.rpm
wget http://centos.ustc.edu.cn/centos/6/os/i386/Packages/yum-plugin-fastestmirror-1.1.30-10.el6.noarch.rpm
并且安装之
rpm -ivh yum-*
注意:yum和yum-fastestmirror相互依赖,所以同时安装即可。
3.下载yum的配置源
wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo
4.修改配置源
[base]
name=CentOS-6 - Base
baseurl=http://centos.ustc.edu.cn/centos/6/os/$basearch/
gpgcheck=1
gpgkey=http://centos.ustc.edu.cn/centos/RPM-GPG-KEY-CentOS-6
#released updates
[update]
name=CentOS-6 - Updates
baseurl=http://centos.ustc.edu.cn/centos/6/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
#packages used/produced in the build but not released
[cr]
name=CentOS-6 - cr
baseurl=http://centos.ustc.edu.cn/centos/6/cr/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
#additional packages that may be useful
[extras]
name=CentOS-6 - Extras
baseurl=http://centos.ustc.edu.cn/centos/6/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-6 - Plus
baseurl=http://centos.ustc.edu.cn/centos/6/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
#contrib - packages by Centos Users
[contrib]
name=CentOS-6 - Contrib
baseurl=http://centos.ustc.edu.cn/centos/6/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
[fasttrack]
name=CentOS-6 - fasttrack
baseurl=http://centos.ustc.edu.cn/centos/6/fasttrack/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
赞一下咱们的公司,就不用到国外的网站了,速度蛮快的。
5.全部更新
把修改后的CentOS-Base.repo复制到/etc/yum.repos.d/目录下,重命名为rhel-debuginfo.repo,并在该目录下执行yum update进行统一更新(或者需要更新什么就更新什么就好),完成即可,这下安装软件什么的就比较方便了,不然的话,呵呵,那就有得你忙了。。。Linux软件包的依赖关系那是相当的头痛。
安装了需要的依赖文件,就开始安装ruby吧~
我使用了较为方便的rvm安装,https://rvm.beginrescueend.com/rvm/install/这里是简单的安装介绍。
#安装RVM
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
接下来安装ruby
#显示可用的安装
[root@localhost ~]# rvm list known
# MRI Rubies
...
[ruby-]1.8.7[-p334]
[ruby-]1.8.7-head
...
[ruby-]1.9.2[-p180]
[ruby-]1.9.2-head
ruby-head
# JRuby
jruby-1.2.0
...
我这里安装的1.8.7版本
rvm install 1.8.7
设置使用这个版本
rvm use 1.8.7 --default
接下来安装ree
rvm install ree
接下来要使用gem安装rails,但是gem所依赖的上面说的三个包还没有安装,使用下面三个命令获得
rvm pkg install readline
rvm pkg install zlib
rvm pkg install openssl
因为这几个是ruby需要的,所以还需要分别安装进去,官网上说是可以先安装这些包,再安装ruby ree,但是我试过了还是不成功。所以还是后安装这些,在下载配置完上面的内容之后,分别运行如下命令:
cd /usr/local/rvm/src/ruby-1.8.7-p357/ext/readline
ruby extconf.rb -- --with-readline-dir="/usr/local/rvm/usr"
make install
cd /usr/local/rvm/src/ruby-1.8.7-p357/ext/zlib
ruby extconf.rb -- --with-zlib-dir="/usr/local/rvm/usr"
make install
cd /usr/local/rvm/src/ruby-1.8.7-p357/ext/openssl
ruby extconf.rb -- --with-openssl-dir="/usr/local/rvm/usr"
make install
这样以来的东西就安装好了。
在这里面还有个问题就是zlib没法下载成功,原因大家都懂,,我这里面提供下载连接:http://download.csdn.net/detail/irfen/4027922
大家把这个下载的文件放到 /usr/local/rvm/archives目录下,在运行rvm pkg install zlib时就不用下载直接配置安装了。
接下来是安装rails ,这里大部分人应该都知道了,淘宝提供镜像了,这样我们下载和安装的速度可以快很多了。http://ruby.taobao.org/
可以修改gem的源,淘宝网上说是http://rubygems.org,但是这个系统上后面有/ ,可能有的没有吧,但是如果不加的话,是删不掉的,这个小细节。。
$ gem sources --remove http://rubygems.org/
$ gem sources -a http://ruby.taobao.org/
$ gem sources -l
*** CURRENT SOURCES ***
http://ruby.taobao.org/
# 请确保只有 ruby.taobao.org
$ gem install foo
这里还需要更改一个地方,因为之后使用rails的时候是使用bundle更新的,所以还需要修改 /usr/local/rvm/gems/ree-1.8.7-2011.12@global/gems/bundler-1.0.21/lib/bundler/templates/Gemfile 文件,source 改成 淘宝的
source 'http://ruby.taobao.org/'
gem 'rails', '3.1.1'
...
这样下载真的很快。
接下来就进入到rails的安装了,下面很简单了,
gem install rails
还有什么根据提示安装就好了。
(三)接下来安装RubyMine
运行rubymine需要java环境,我用的是jdk-6u30-linux-i586-rpm.bin安装,之后设置JAVA_HOME,export,让她随系统启动。这些大家很清楚了,我就不多说了。
接下来就可以安装rubymine了,嗯,这个不用安装,绿色版的,把它解压之后进入bin运行rubymine.sh即可使用了(这里还是再次提醒下运行rubymine是需要JAVA_HOME的)。
(四)新建个项目吧
我这里先用命令行新建的项目
rails new railsDemo
之后在rubymine中引入目录,在rails application setting 中选择ree, rails3.1.1, 勾选preconfigure for selected database,选择mysql,OK。
在database.yml中development模式输入上mysql的密码,在mysql中创建相应的数据库。
接下来进行数据库迁移,快捷键ctrl+alt+g弹出窗口,选择scaffold,填入article title:string content:text,别的不用改,article 是model, 后面是表字段。
创建成功后会自动打开article的controller,找到db下面的migrate下面article对应的文件,右键,Cteate "db:migrate" ,弹出对话框直接OK,窗口上方绿色箭头左边变为 db:migrate ,点击绿色三角,运行后数据迁移,之后在选择绿色三角左边,选成development模式,再次点击绿色三角运行,接下来我们就可以输入http://localhost:3000进行访问了。访问成功,然后在访问我们创建的article,需要输入http://localhost:3000/articles,然后就可以看到啦~!