Ruby on Rails 在Wind7 64 上的安装
Ruby on Rails 在window平台各种坑,配置过程相当痛苦。
预计安装内容:
mysql server
ruby 2.0.0
rails 4.0.2
mysql2 0.3.16
安装文件:
mysql官网:http://dev.mysql.com/downloads/windows/installer/
选择64位安装文件,下载安装
railsinstaller:http://www.railsinstaller.org/en
正式版的是1.9.3的ruby,但是有个alpha版的ruby2.0 ,所以选择安装这个测试版。
这个installer中包含ruby,rails,git,gem,sqlite等等内容,算是一键安装,非常方便。
当然,单从ruby官网推荐学习的安装方式是先安装ruby,在安装gem,然后通过gem安装rails,这个也可以。但是之后再连接DB的时候会出现各种莫名其妙的问题。弃之。
安装成功之后,就可以new个project玩一下了。
mysql2安装
开发因为要使用mysql,所以DB要配置成mysql。(这里是悲剧开始的地方,呵呵)
用上面的railsinstaller安装的ruby是32位的。不知道是什么原因,直接安装mysql2会失败,还需要一个connector才行。
首先下载这个connector:http://dev.mysql.com/downloads/connector/c/ 选择32位的zip包,不要用安装包。
下载之后解压,放到一个路径下,这个路劲最好没有中文没有空格。 执行安装命令:
gem install mysql2 -v '0.3.16' --platform=ruby -- '--with-mysql-dir="上面connector解压的路劲"'
比如我的是:
gem install mysql2 -v '0.3.16' -- '--with-mysql-dir="C:\mysql-connector-c-noinstall-6.0.2-win32"'
这样就可以安装成功了。
安装成功之后,需要办connectPath/lib里面的libmysql.dll libmysql.lib这两个文件放到ruby/bin里面。
常用的命令:
gem install
gem uninstall
gem list 列出gem中已安装的gem
gem update 更新
gem sources 查看gem使用的源
rails new projectname --新建一个ROR project
rails server --启动rail server,类似启动tomcat
rails generate scaffold --新建脚手架,这个也是ruby好处1min建立一个blog的原因。
rails destory scaffold --删除脚手架
bundle install
bundle update
bundle show --显示某个gem位置
(ps:看我列出来的命令,就知道我是个不能再初级的小白了。。。)
关于troubleshooting:
个人觉得rails的错误提示信息还是很强大的,如果出现问题,先看给出的信息是什么,一些通用额问题甚至给出解决方案。看信息很重要。
然后最强大的当然是google baidu了。
网络环境:
公司限网,还是使用代理上网,gem的相关操作都是在cmd里完成的,而且需要衔接外网获取gem 包。
在安装之前,最好先设置好代理:
set http_proxy=http://hostname:port
如果使用git做源码管理的话,也需要设置代理。 (网络自由是很重要的,呼吁解封google)
gem的默认源是国外的网站,不稳定,速度慢,一般都会改成taobao的镜像,貌似是15min同步一次。(http://ruby.taobao.org)
显示当前使用的sources
gem sources
添加一个source
gem sources -a url地址
删除一个source
gem sources -r url地址
更新source cache
gem sources -u
学习资料:
http://railstutorial-china.org/rails4/
ruby 开发风格指导
http://guides.ruby.tw/ruby-rails-style-guides/zhCN/
books
http://railstutorial-china.org/
http://guides.ruby-china.org/
http://ihower.tw/rails3/index.html
--------------------------------------------------------------------------------------
安装上面的一步步下来,应该可以顺利运行一个project了。
我在配置环境的过程中遇到很多问题,
1 网络环境,公司环境需要代理,导致在线安装的各种失败。这个纠结了很久,本以为会自动使用IE的代理设置。
2 安装版本
一开始直接安装1.9.3的railsinstaller,这个里面的ruby是1.9.3的版本,项目用的2.0.0,。弃之,重新安装。却惊奇的发现正式版的installer没有2.0.0的。也没有看到网站的的小字里面提到的测试版。
然后就直接找了ruby2.0.0(64bit)的安装文件,安装之后,通过gem安装rails等其他东西。
ROR默认使用sqlite,一个开始没换成mysql的时候,玩的很顺利。然后着手换成mysql2。就卡住了。
先是配置,网上搜了各种教程,各种失败。
先是mysql2安装失败,bundle install失败,gem install mysql2 也失败。慢慢baidu的过程中知道需要connetor,然后就找了各种版本的connector来尝试。因为mysql安装的是64bit,就下载了64bit的安装版来试,还是不行。后来知道不用安装版,要用zip版,尝试尝试。换成32bit之后,还是有不行。虽然可以顺利安装mysql2,但在执行generate scaffold的时候,提示一个'不是有效的可执行文件'的错误。至此,完全卡住。网上的很多解决方案提到出现这个问题的原因是32bit的ruby和64bit的mysql不兼容。我的ruby是64bit,我也尝试使用64bit的connector也不行。
ps: connector 也有版本之分,6.0.2和6.1.5,上面使用的6.1.5,有的时候需要6.0.2,安装mysql的有提示。
有的文章提到测试版railsinstaller,无路可走的情况下,卸载了本地的ruby rails,使用测试版的railsinstaller才有了上边的总结。
虽然初步解决问题,但是依然不知道根本原因是什么。
解决问题的思路也不够清晰,通常是各种解决方案绕在一起,混在一起尝试,导致最后不知道那个方案可以,那个方案彻底失败,哪个方案还需在尝试。
出现跟多问题的时候,一起解决,导致问题复杂化,也附加其他各种莫名问题。
-----------------------------------------------------------------------------------------------------------
问题依然存在,有个项目源码在我配置好的环境下依然不行。还是mysql2安装问题。
待续~