ruby入门--linux/windows下的安装、代码开发及rails实战
2013-12-10 18:06
826 查看
公司有项目组进行系统重构,采用了Ruby On Rails框架,我也抽出时间学习了一下,并对几个原来用Java开发的定时任务、消息监听进行了ruby改造,学习过程中主要参考两本书:《Programming Ruby中文版(第二版)》 、《Ruby
on Rails教程》,开发工具:vim、RubyMine。
安装
Linux下:安装RVM和GEM后,之后所有的安装,都可以交给RVM和GEM了,安装RVM默认会装好GEM。(1)curl -L https://get.rvm.io | bash -s stable
(2)source /etc/profile.d/rvm.sh ,这个脚本的目的是把rvm相关加入$PATH路径
安装完毕后界面如下(这个是从github下载代码,国内非常慢,多尝试几次):
安装RVM之后,安装ruby组件:
(1)安装ruby:rvm install ruby
这一步rvm会帮我们自动安装很多linux依赖包(如果linx本身没有的话),如果自动装不上,也可以根据屏幕提示收到安装,比如可能有提示进行如下安装:
yum install -y libyaml-devel autoconf gcc-c++ readline-devel zlib-devel openssl-devel automake libtool bison
网速不好,机器太烂(比如我的单CPU1G内存虚拟机),可能会花很多时间(比如2个小时),先有个心理准备
(2)安装rails:gem install rails
输入ruby -v ,显示ruby的版本,可以看到ruby已经装好。
我们也可以通过which ruby,查看ruby程序的位置。之所以直接输入ruby就能运行,是因为rvm已经把ruby加到$PATH环境变量中了。
我们输入echo $PATH,可以看到$PATH环境变量中已经包含ruby的路径了,如下:/usr/local/rvm/bin 。
HelloWorld
使用irb,写出第一行代码:puts "Hello, World!"也可以编辑一个文件:test.rb,内容也只有一行:puts "Hello,World",然后再命令行运行:ruby test.rb,可以看到输出了正确的结果。
我们也可以这样设置test.rb,内容如下:
#!/usr/local/rvm/bin/ruby
puts "Hello,World"
然后再命令行给test.rb可执行的权限:chmod 777 test.rb,然后我们在命令行输入:./test.rb,可以看到,输出了正确的结果。
Mysql devel&client组件
(1)yum -y install mysql-devel由于我的rhel6.2机器yum下面有错误的.repo文件,导致我一直连不上yum源服务器,执行了如下操作:
cd /etc/yum.repos.d/
rm -fr 无用的.repo文件
yum clean all
vim /etc/yum.repos.d/rhel-source.repo(这个文件的内容如下)
[rhel-source] name=Red Hat Enterprise Linux $releasever - $basearch - Source baseurl=http://192.168.1.11/yum/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [rhel-source-beta] name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/SRPMS/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
(2)gem install mysql2
经过以上两步,就可以连接mysql数据库了,例子代码如下:
require 'mysql2' class Test def initialize @db = Mysql2::Client.new(:host => "192.168.211.245", :port => 3306, :username => "mysql", :password => "mysql", :database => "yitian_b2c_db") puts "a" end end if __FILE__ == $0 test = Test.new end
定时任务组件 rufus-scheduler
支持cron表达式,参考网址:http://www.cnblogs.com/fantiantian/archive/2013/10/26/3388367.html先安装:gem install rufus-scheduler
log4r
require 'logger' 就可以使用了,参考网址:http://www.360doc.com/content/12/0203/17/33776_183928682.shtml
xml操作
例子代码如下:buffer = ""; x = Builder::XmlMarkup.new(:target => buffer, :indent => 1) x.instruct! :xml,:version => '1.0',:encoding =>'UTF-8' x.comment! "书本信息" x.library("shelf" => "Recent Acquisitions") { x.section("name" => "ruby"){ x.book("isbn" => "0672310001"){ x.title "Programming Ruby" x.author "Yukihiro" x.description"Programming Ruby- The Pramatic Programmer's Guide" } } } puts buffer fh = File.new("xml.xml","w") fh.puts buffer fh.close
参考网址:
http://builder.rubyforge.org/
http://developer.51cto.com/art/200912/171073.htm
http://blog.csdn.net/leaf1984zh/article/details/5652728
hessian
安装hessian:gem install hessian2hessian代码示例:
require 'hessian2'
client = Hessian2::HessianClient.new(url)
client.xxx
程序完成及部署
源代码下载地址:http://pan.baidu.com/s/1i3unFXN历时3天,完成我的第一个ruby程序,是改写的一个定时xml生成程序,干的不错!
一点小经验积累,如下:
initialize里面,打开数据库连接,是不可取的。如果程序执行很长时间,下次来用这个连接时,可能已经关闭了,最好用时open,用完close,不知道ruby里面有没有连接池的概念,可以进一步提高性能;
测试环境实践发现,hessian协议性能貌似低于dubbo协议,大约dubbo 2-3倍于 hessian,这个程序是2.6倍,很简单的请求,平均dubbo一次是4-5毫秒,hessian一次是11-12毫秒;
生产环境实际运行,hessian协议性能貌似和dubbo协议基本一致,运行了约20万次,总计消耗时间7分钟和8分钟的区别。
RabbitMQ的Ruby客户端:bunny
安装:gem install bunny开始Rails之旅
推荐文章:http://railstutorial-china.org 有这个可以说足够了。sqllite
linux机器可能没有安装Sqllite-devel,安装一下吧:yum install sqlite-develJavaScript服务器解释引擎
linux机器可能没有安装JavaScript的服务器解释引擎,安装一下吧:gem install execjs gem install therubyracer,貌似这两步之后也不行,我的机器是REHL6.2,需要安装node.js才行,步骤如下:wget http://nodejs.org/dist/v0.10.5/node-v0.10.5.tar.gz
tar xfv node-v0.10.5.tar.gz
cd node-v0.10.5
./configure
make
make install
参考文章:http://www.cnblogs.com/qiuliang/archive/2013/04/29/3050396.html
Git
/article/1830696.html建立一个Raise项目并推送到GitHub
可以完全参考教程:http://railstutorial-china.org/chapter1.html#section-1-2-3发布到云部署平台heroku
heroku.com注册一个账户wget https://toolbelt.heroku.com/install.sh --no-check-certificate
chmod +x install.sh
./install.sh
echo 'PATH="/usr/local/heroku/bin:$PATH"' >> /etc/profile
通过以上步骤,安装完成heroku的linux客户端,下面开始部署:
heroku login
cd /data/ruby/rails_project/first_app
heroku create
注意:执行这些命令,会自动把~/.ssh/id_rsa.pub里面的公钥,写到您的heroku账户的SSH Keys里面,如果有过ssh重新生成等,需要到账户里面更新。貌似heroku和github用的是一个公钥。
下面,我们发布程序:git push heroku master ,正常的话,已经部署成功了,我的url如下: http://damp-citadel-7023.herokuapp.com/
使用scoffold快速建立一个用户微博程序
学习网址:http://railstutorial-china.org/chapter2.html演示网址:http://mighty-anchorage-9820.herokuapp.com/users
演示从头到尾建立一个大型的示例程序
学习网址:http://railstutorial-china.org/chapter3.html演示网址:http://salty-lowlands-9048.herokuapp.com/
Windows下安装
rubyinstaller
安装包下载地址:http://pan.baidu.com/s/1i3unFXN官网下载:http://rubyinstaller.org/downloads
执行rubyinstaller-2.0.0-p353-x64.exe,进行安装,安装完毕后,cmd里面执行:ruby -v,显示版本号,说明ruby安装成功;
执行gem -v,显示版本号,说明RubyGems(Ruby程序包管理器)也已经被默认安装好了;
DevKit
安装DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe,解压到一个固定的位置,使用后不能变换位置,更多参考:https://github.com/oneclick/rubyinstaller/wiki/Development-Kit
步骤大致如下:
1) 将下载 DevKit 解压到 D:\DevKit 目录。
2) 打开 CMD 窗口,进入 D:\DevKit 目录,输入ruby dk.rb init 。#生成config.yml,这里会检查将要添加DevKit支持的Ruby列表,只支持通过RubyInstaller安装的Ruby。
3) 输入 ruby dk.rb install #开始安装。
4) 输入 ruby dk.rb review #检查要添加DevKit支持的Ruby列表是否有误,可以略过。
5) 输入 gem install rdiscount --platform=ruby 。#这一步只是验证DevKit是否安装成功,如果能安装rdiscount成功说明安装DevKit成功,也可以不做。
Rails
安装完以上后,可以安装rails了:从CMD提示窗口输入指令:gem install rails 开始安装rails。
如不想安装文档文件,可以输入:gem install rails --no-rdoc --no-ri
程序自动下载并安装rails, 耐心等待。
安装完成后,你可以在路径 D:\Ruby\lib\ruby\gems\1.9.1\gems 看到些东西,都是rails的包文件,与ruby安装在同一目录下。
这时在CMD提示窗口输入指令: rails -v 显示rails的版本号。
参考网址:http://www.admin10000.com/document/140.html
Mysql2
拷贝libmysql.dll、libmysql.lib到 D:\Ruby\bin目录下,执行:gem install mysql2 -- '--with-mysql-lib="E:\Program Files\MySQL\MySQL Server 5.5\lib" --with-mysql-include="E:\Program Files\MySQL\MySQL Server 5.5\include"'
或者
gem install mysql2 -- '--with-mysql-dir="E:\Program Files\MySQL\MySQL Server 5.5"'
就可以安装成功了,但是使用时(require 'mysql2')报错,如下图:
出现的原因是的libmysql.lib和mingw64-gcc不兼容导致的,于是卸载mysql2:gem uninstall mysql2。
gendef.exe,这个从https://structure-svm-map.googlecode.com/files/svm-map-win.zip下载,解压后在python-mingw-lib目录里面。
拷贝到devkit/mingw/bin下,我之所以考到这里,是因为dlltool.exe也在这里,都放到path里方便。
然后运行:gendef.exe libmysql.dll。
这条命令会生成libmysql.def文件。
生成这个libmysql.def文件之后,就可以生成新的lib了。
dlltool -v –dllname libmysql.dll –def libmysql.def –output-lib libmysql.lib。
拷贝libmysql.lib到D:\Ruby\bin目录下面,重新安装,
都OK了。
参考网址:http://liubin.org/2013/10/17/install-mysql2-under-64bit-windows-and-ruby2-0/ https://bugs.ruby-lang.org/issues/8591
注意事项
如果在Windows下面编辑的文件,拿到Linux下面未必能正确运行,因为Windows的换行符到Linux里面是^M,而Linux的是$,对于Windows下面编辑的文件,可以用如下命令进行处理:dos2unix ruby_start
是否是这种情况,可以通过:cat ruby_start -A看到
到现在,再Ruby的环境中,应该也浸淫了至少2周的时间了吧,对Ruby基本语法,运行环境,生态环境,应该都有一定了解了吧。
开始进入IDE的世界吧。就用RubyMine,现在的版本是6了。经过前几周记事本写代码的世界,现在改用IDE,是不是发现工作变得轻松起来了呢。
相关文章推荐
- Ruby入门--Linux/Windows下的安装、代码开发及Rails实战
- Ruby系列文章之2 --- Windows下安装Ruby on Rails 开发环境
- Windows下Ruby on Rails开发环境安装配置图文教程
- Ruby on rails 实战圣经:安装Rails开发环境
- [Ruby on Rails系列]1、开发环境准备:Vmware和Linux的安装
- windows 安装使用vim,及安装插件spark和rails.vim ,来作为ruby on rails 开发IDE
- Ruby on rails开发从头来(windows)(十一)-订单(Order)
- Unix/Linux环境C编程入门教程(6) 安装Fedora C/C++开发环境
- Ruby on rails开发从头来(windows)(十二)-订单(Order)
- windows本地代码同步到Linux开发服务器的方法
- Ruby on rails开发从头来(windows)(二)-创建项目和第一个Hello world (修正原版错误)
- Ruby on rails开发从头来(windows)(十九)-测试开始
- Ruby On Rails系列从入门到精通实战教程 Ruby基础教程下载
- win7安装ruby on rails开发环境
- windows 下pycharm远程linux开发和调试代码
- Ruby on rails for windows 成功安装步骤
- Ruby on rails开发从头来(windows)(二十一)-测试Model时的问题
- windows上使用linux的开源代码开发windows程序
- 在 Linux 平台上安装和配置 Ruby on Rails 详解
- Arduino可穿戴开发入门教程Windows平台下安装Arduino IDE