Ruby入门--Linux/Windows下的安装、代码开发及Rails实战

http://www.linuxidc.com/Linux/2014-04/100242.htm

Ubuntu 13.04下Ruby的安装 http://www.linuxidc.com/Linux/2013-06/85734.htm

公司有项目组进行系统重构,采用了Ruby On Rails框架,我也抽出时间学习了一下,并对几个原来用Java开发的定时任务、消息监听进行了ruby改造,学习过程中主要参考两本书:《Programming Ruby中文版(第二版)》 (下载见http://www.linuxidc.com/Linux/2014-04/100254.htm )、《Ruby on Rails教程》(PDF下载见 http://www.linuxidc.com/Linux/2014-04/100253.htm ),开发工具: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.linuxidc.com/Linux/2014-04/100244.htm

先安装:gem install rufus-scheduler

log4r

require 'logger' 就可以使用了,参考网址: http://www.linuxidc.com/Linux/2014-04/100249.htm

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://www.linuxidc.com/Linux/2014-04/100243.htm

http://www.linuxidc.com/Linux/2014-04/100248.htm

hessian

安装hessian:gem install hessian2

hessian代码示例:

require 'hessian2'

client = Hessian2::HessianClient.new(url)

client.xxx

程序完成及部署

源代码下载地址: http://pan.baidu.com/s/1dDejscx

历时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之旅

推荐PDF教程: http://www.linuxidc.com/Linux/2014-04/100253.htm 有这个可以说足够了。

sqllite

Linux机器可能没有安装Sqllite-devel,安装一下吧:yum install sqlite-devel

JavaScript服务器解释引擎

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.linuxidc.com/Linux/2014-04/100252.htm

Git

Git安装:

Getting Started - Installing Git

Installing Git

Let’s get into using some Git. First things first—you have to install it. You can get it a number of ways; the two major ones are to install it from source or to install an existing package for your platform.

Installing from Source

If you can, it’s generally useful to install Git from source, because you’ll get the most recent version. Each version of Git tends to include useful UI enhancements, so getting the latest version is often the best route if you feel comfortable compiling software from source. It is also the case that many Linux distributions contain very old packages; so unless you’re on a very up-to-date distro or are using backports, installing from source may be the best bet.

To install Git, you need to have the following libraries that Git depends on: curl, zlib, openssl, expat, and libiconv. For example, if you’re on a system that has yum (such as Fedora) or apt-get (such as a Debian based system), you can use one of these commands to install all of the dependencies:

$ yum install curl-devel expat-devel gettext-devel   openssl-devel zlib-devel

$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext   libz-dev libssl-dev

When you have all the necessary dependencies, you can go ahead and grab the latest snapshot from the Git web site:

http://git-scm.com/download

Then, compile and install:

$ tar -zxf git-1.7.2.2.tar.gz
$ cd git-1.7.2.2
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install

After this is done, you can also get Git via Git itself for updates:

$ git clone git://git.kernel.org/pub/scm/git/git.git

Installing on Linux

If you want to install Git on Linux via a binary installer, you can generally do so through the basic package-management tool that comes with your distribution. If you’re on Fedora, you can use yum:

$ yum install git-core

Or if you’re on a Debian-based distribution like Ubuntu, try apt-get:

$ apt-get install git

Installing on Mac

There are two easy ways to install Git on a Mac. The easiest is to use the graphical Git installer, which you can download from the Google Code page (see Figure 1-7):

http://code.google.com/p/git-osx-installer

Figure 1-7. Git OS X installer.

The other major way is to install Git via MacPorts (http://www.macports.org). If you have MacPorts installed, install Git via

$ sudo port install git-core +svn +doc +bash_completion +gitweb

You don’t have to add all the extras, but you’ll probably want to include +svn in case you ever have to use Git with Subversion repositories (see Chapter 8).

Installing on Windows

Installing Git on Windows is very easy. The msysGit project has one of the easier installation procedures. Simply download the installer exe file from the GitHub page, and run it:

http://msysgit.github.com/

After it’s installed, you have both a command-line version (including an SSH client that will come in handy later) and the standard GUI.

Note on Windows usage: you should use Git with the provided msysGit shell (Unix style), it allows to use the complex lines of command given in this book. If you need, for some reason, to use the native Windows shell / command line console, you have to use double quotes instead of simple quotes (for parameters with spaces in them) and you must quote the parameters ending with the circumflex accent (^) if they are last on the line, as it is a continuation symbol in Windows.

Git配置与使用:与 推送到GitHub:教程见

注意:你必须先注册一个GitHub.Com账户,如果使用SSH方式进行推送,则需要创建SSH秘钥,需要在GitHub中建立Repository。

SSH推送到GitHub的命令如下:

git remote add origin git@github.com:<username>/first_app.git
$ git push -u origin master

<username>要替换成你在GitHub注册的用户名,master是你的分支名称,现在我们可以在GitHub中看到这个master分支了:

https://github.com/pumadong/first_app

关于Git,在Windows及Mac下面,都有GUI程序可用,在linux下面,貌似只有git命令可用了。

建立一个Raise项目并推送到GitHub

 
 

发布到云部署平台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快速建立一个用户微博程序

 
 

演示从头到尾建立一个大型的示例程序

 
 

Windows下安装

rubyinstaller

安装包下载地址:http://pan.baidu.com/s/1dDejscx

官网下载: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.linuxidc.com/Linux/2014-04/100250htm

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了。
 

注意事项

如果在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实战的更多相关文章

  1. Apache Thrift 在Windows下的安装与开发

    Windows下安装Thrift框架的教程很多.本文的不同之处在于,不借助Cygwin或者MinGW,只用VS2010,和Thrift官网下载的源文件,安装Thrift并使用. 先从官网 下载这两个文 ...

  2. mysql 在windows下的安装,开发基础与要点

    1:安装(windows下) 官网下载.msi文件 运行安装时只需要安装server就行了 在环境变量中配置到bin目录:e.g:C:\programFile\...mysql\bin 完成后进入wi ...

  3. Windows下单机安装Spark开发环境

    机器:windows 10 64位. 因Spark支持java.python等语言,所以尝试安装了两种语言环境下的spark开发环境. 1.Java下Spark开发环境搭建 1.1.jdk安装 安装o ...

  4. Thrift在Windows及Linux平台下的安装和使用示例

    本文章也同时发表在个人博客Thrift在Windows及Linux平台下的安装和使用示例上. thrift介绍 Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的R ...

  5. windows下Graphviz安装及入门教程

    下载安装配置环境变量 intall 配置环境变量 验证 基本绘图入门 graph digraph 一个复杂的例子 和python交互 发现好的工具,如同发现新大陆.有时,我们会好奇,论文中.各种专业的 ...

  6. MySQL入门——在Windows下安装MySQL

    MySQL入门——在Windows下安装MySQL 摘要:本文主要说明了如何下Windows环境下安装MySQL. 查看电脑上是否安装了MySQL 打开cmd窗口,输入 services.msc 命令 ...

  7. Perl Tk在IC设计中的应用、Windows、Linux平台下的安装-各种错误的摸索解决

    本文转自:自己的微信公众号<集成电路设计及EDA教程> <Perl Tk在IC设计中的应用.Windows.Linux平台下的安装-各种错误的摸索解决> Perl在IC设计中有 ...

  8. Windows下pry安装和配置

    Windows下pry安装和配置 pry是一个增强型的交互式命令行工具,比irb强大. 有自动完成功能,自动缩进,有颜色.有更强大的调试功能. pry 安装很简单. 在终端输入: gem instal ...

  9. Windows下memcache安装使用

    Windows下Memcache安装 随着时间的推移,网上现在能找到的在 Windows下安装 Memcache 的文档大多已经过时.雪峰这里再简要介绍一下当下最新版的安装和配置方法. Memcach ...

随机推荐

  1. CocoaPods 安装 使用

    1.开启 terminal 2.移除现有 Ruby 默认源 $ gem sources --remove https://rubygems.org/ 3.使用新的源 $ gem sources -a ...

  2. [转载]解决zabbix在configure时候遇到的问题(Ubuntu)

    http://hi.baidu.com/ryq1xiuluo/item/6d37e658f1b90b13db16351d ./configure --enable-server --enable-ag ...

  3. Java 垃圾回收算法

    在之前Java 运行期数据区一文中,介绍了运行时内存的各个部分.其中程序计数器.虚拟机栈.本地方法栈都随线程消亡,所以,这几个区域的内存分配和回收都具备确定性.而 Java 堆和方法区不同,我们只有在 ...

  4. 远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)

    RPC(Remote Procedure Call Protocol) RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果.这个请求包括一个参数集和一个文本集,通常形成&qu ...

  5. Java 判断两个对象是否相等

    一.使用 == 与 equals == : 它的作用是判断两个对象的地址是不是相等.即,判断两个对象是不是同一个对象.(基本数据类型==比较的是值,引用数据类型==比较的是内存地址) equals() ...

  6. 05. Matplotlib 1 |图表基本元素| 样式参数| 刻度 注释| 子图

    1.Matplotlib简介及图表窗口 Matplotlib → 一个python版的matlab绘图接口,以2D为主,支持python.numpy.pandas基本数据结构,运营高效且有较丰富的图表 ...

  7. 063 日志分析(pv  uv  登录人数  游客人数  平均访问时间  二跳率  独立IP)

    1.需求分析 分析指标 pv uv 登录人数 游客人数 平均访问时间 二跳率 独立IP 2.使用的日志(一号店),会话信息 3.创建数据库 4.创建源表,存储源数据 5.创建我们需要的use表 6.创 ...

  8. 【洛谷】【堆】P1168 中位数

    [题目描述:] 给出一个长度为N的非负整数序列A[i],对于所有1 ≤ k ≤ (N + 1) / 2,输出A[1], A[3], …, A[2k - 1]的中位数.即前1,3,5,……个数的中位数. ...

  9. laravel中的Contracts, ServiceContainer, ServiceProvider, Facades关系

    Contracts, ServiceContainer, ServiceProvider, Facades  Contracts 合同,契约,也就是接口,定义一些规则,每个实现此接口的都要实现里面的方 ...

  10. linux day4

    echo $? :上一次命令是否执行正确make clean :清理编译垃圾文件env :查询环境变量 安装pip下载软件源cat /etc/pip.conf [global] index-url = ...