昨晚在WIN7下面装了vagrant最新版,然后下载了wheezy32.box,再一次的开启了ROR之旅,此前在windows上尝试过两次,终究是没办法进入正常的开发状态。
不得不说,ROR的环境配置真心很坑!你要注意ruby的版本,rails的版本,gem的版本,一个不小心,新手就掉进去了,很受挫折,windows下根本就不是rails的开发的可用环境,体验一下就算了吧!
简述一下我记忆的步骤:
1、su 进入管理员模式,免得每一步都要加sudo;
(1、vagrant add box base whzzey32.box
(2、vagrant up
(3、vagrant ssh
(4、su的密码是vagrant
2、首先把源切换到网易的源,具体参考 http://mirrors.163.com的提示。
(1、vi /etc/apt/sources.list 编辑状态,加入163源提示的条目,
(2、更新系统,apt-get update
更新完系统开始安装rails项目
3、在《使用rails敏捷开发第四版》中的安装方法可能相对稳妥,
(1、apt-get install build-essential libopenssl-ruby libfcgi-dev
(2、apt-get install ruby irbrubygems ruby-dev ( 原书是1.8的,但是现在直接apt-get install ruby会是1.9.3 2014-05-20,再后面会遇到坑!你安装ruby1.9.3-dev遇挫,1.9-dev错,这里提示一个小技巧,遇到包找不到的时候,可以根据关键字搜索:apt-cache search keywords )
(3、apt-get install sqlite3 libsqlite3-dev
(4、检查gem是否装好了:gem -v 如果显示装好,就可以进行下一步了,我装的时候,这个办班最开始是1.8.2,又是一个坑啊!!需要先升级。
(1、gem update --system
在debian、ubuntu(前者的衍生版)下面执行这个命令也不行,说是gem会修改系统的一些关键信息,不允许更新,如果要强制更新blabla一大堆英文,这里就要装一个gem来帮助我们了(OK,我又遇见坑了!),这里要怪我没有仔细看原书,刚才发现,linux上升级rubygems的提示第二段可以解决问题:
(2、gem install rubygems-update
(3、sudo update_rubygems
(4、gem update --system
这个时候就可以开始升级gem了,妈蛋!!
但是你发现了什么?在每次输入gem install XXX的时候半天没反应?是不是死机了?NONONO!是因为gem的源在国外,不稳定导致的。解决办法,使用淘宝的源:http://ruby.taobao.org
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
$ gem sources -l
*** CURRENT SOURCES ***
请确保只有 ruby.taobao.org
$ gem install rails
还有,如果嫌输入命令后半天没响应等着着急,可以在每个命令后面追加一个 -V 的参数,例如:gem install rails -V
4、费力了半天,现在可以安装rails了:
(1、gem install rails -V
(2、gem install sqlite3
搞定后,现在检查是否装好: rails -v 如果有版本显示则搞定。
如果找不到命令,还需要将rails添加到环境变量,我在安装的过程中没有遇到这个问题,现在把原书的命令抄录在下:
export PATH=/var/lib/gems/1.8/bin:$PATH
当然了,这里的版本号需要根据自己的情况确定,最好先用which gem搜索一下,根据自己的情况灵活变通的添加。
5、安装rails的事情现在终于告一段落了,不过这可能不是结束。
(1、gem list --local rails 在实验中,你可能安装多个版本,这个命令可以看到你默认运行的版本;
(2、gem install rails --version 3.0.5 安装指定版本的时候用到;
(3、rails 3.0.5 --version 指定运行版本,
6、其他的一些问题:
现在开始exit推出su模式,使用普通用户模式开始工作,以上的工作基本都要求高权限,我是一直在su模式下完成的。
(1、创建信的rails app: cd .. 跳转,然后进入vagrant目录,这个目录跟母机共享,进入后mkdir创建开发目录:mkdir dev ,然后进入创建rails应用:rails new appname
在这个过程中,你可能首先遇到的是libdev没安装,神马 mkmf 的错误提示,根据提示安装就行,提示一下:我在安装的时候始终不成功,
ERROR:Failed to build gem native extension.
后来发现是没有python的缘故:sudo apt-get install python 一般python在linux系统自带的,可能是BOX的问题。
还有javascript runtime没安装,装execjs:gem install execjs,gem install therubyracer,这两种包,或者安装nodejs : sudo apt-get install nodejs ,不过我在执行命令的时候说是没有找到nodejs这个包。
(2、在新建应用的时候,create之后可能会出现bundle install 卡住的问题,这个的解决办法是:
a、ctrl+c ,然后进入应用存放目录,修改gemfile,把源修改成淘宝的;之后运行bundle install ,根据提示,有可能缺少gem,逐个使用gem install安装。最后bundle install之后,就可以了
b、创建时先忽略,之后手动操作: 这个方案见:http://rubyer.me/blog/941/
rails new my_app --skip-bundle
cd my_app
bundle install --local
最后,无数个坑之后,你的应用终于能使用rails server 运行起来了!
ok,vagrant上开发的,要在本机浏览,需要做端口映射,vagrant halt关机,然后再vagrant的目录下找配置文件,里面有端口映射的语句,80-->8080的,你可以复制后修改为3000-->3000的端口,方便调试。
关于vagrant的使用,golang大牛有一个教程:https://github.com/astaxie/Go-in-Action/blob/master/ebook/zh/01.3.md
……………………
昨晚我操练了无数次,最后运行起来了,其中无数的坑!(不过我估计大多数的坑我遇到了,也有类似的案例可以方便以后解决问题了,也是一种成长。)rails对于新手来说,真的不适合!