您的位置:首页 > 运维架构 > Linux

linux(ubuntu)下ruby开发环境搭建

2010-02-04 11:45 501 查看
env setup

linux(ubuntu)下ruby开发环境搭建,包括一些常见问题解决



注意,本文只是我在搭建ruby学习环境时的一些笔记,因为是用gedit编辑的,所以格式化不是很好,另外,只是备忘而已。

2010.1.19

1. install ruby

$ tar xzf ruby-1.8.7-p248.tar.gz

$ mv ruby-1.8.7-p248 ruby187

$ cd ruby187/

$ ./configure

$ make

owen@owen-desktop:~/softinstall/ruby/ruby187$ make test

test succeeded

owen@owen-desktop:~/softinstall/ruby/ruby187$ sudo make install

owen@owen-desktop:~/softinstall/ruby/ruby187$ ruby -version

ruby 1.8.7 (2009-12-24 patchlevel 248) [i686-linux]

-e:1: undefined local variable or method `rsion' for main:Object (NameError)

owen@owen-desktop:~/softinstall/ruby/ruby187$ which ruby

/usr/local/bin/ruby

2. intall Rails through RubyGems

2.1 intall gems

$ tar xzf rubygems-1.3.4.tgz

$ cd rubygems-1.3.4/

$ sudo ruby setup.rb

Installing RubyGems

Installing gem executable

Removing old source_cache files

Removing old RubyGems RDoc and ri

Installing rubygems-1.3.4 ri into /usr/local/lib/ruby/gems/1.8/doc/rubygems-1.3.4/ri

Installing rubygems-1.3.4 rdoc into /usr/local/lib/ruby/gems/1.8/doc/rubygems-1.3.4/rdoc

------------------------------------------------------------------------------

Oh-no! Unable to find release notes!

------------------------------------------------------------------------------

RubyGems installed the following executables:

/usr/local/bin/gem

2.2 install rails through RubyGems

sudo gem install rails --include-dependencies

3. create a simple App

新建一个目录mkdir rubydev

cd rubydev

使用rails命令创建web app

rails hello

这样一个叫hello的web应用程序框架就创建好了,现在需要做的就是添加自己的业务逻辑

cd hello

使用如下命令创建一个名为App的控制器

ruby script/generate controller App

这时可能会出现如下错误,报告无法加载openssl库:

owen@owen-desktop:~/devspace/rubydev/hello$ ruby script/generate controller App

/usr/local/lib/ruby/gems/1.8/gems/rails-2.3.5/lib/initializer.rb:271:in `require_frameworks': no such file to load -- openssl (RuntimeError)

……

在ubuntu下可以使用如下命令解决此问题:

apt-cache search openssl

sudo apt-cache install 相关依赖包

然后进入到ruby的安装目录,使用

owen@owen-desktop:~/softinstall/ruby/ruby187/ext/openssl$ ruby extconf.rb

……

=== Checking done. ===

creating extconf.h

creating Makefile

Done.

owen@owen-desktop:~/softinstall/ruby/ruby187/ext/openssl$ make

owen@owen-desktop:~/softinstall/ruby/ruby187/ext/openssl$ make install

然后再执行命令创建一个名为App的控制器:

owen@owen-desktop:~/devspace/rubydev/hello$ ruby script/generate controller App

exists app/controllers/

exists app/helpers/

create app/views/app

exists test/functional/

create test/unit/helpers/

create app/controllers/app_controller.rb

create test/functional/app_controller_test.rb

create app/helpers/app_helper.rb

create test/unit/helpers/app_helper_test.rb

owen@owen-desktop:~/devspace/rubydev/hello$

注意到了吧,这个create app/controllers/app_controller.rb就是给创建的控制器哦

打开进行编辑$ gedit app_controller.rb

hello/app/views/app$ gedit greeting.html创建试图页面

<html>

<head>

<title>Ruby on Rails</title>

</head>

<body>

<h2>Yes, it's working!</h2>

<body>

<html>

好了,可以启动Rails自带的一个web服务器来测试一下了.

owen@owen-desktop:~/devspace/rubydev/hello$ ruby script/server

=> Booting WEBrick

=> Rails 2.3.5 application starting on http://0.0.0.0:3000
=> Call with -d to detach

=> Ctrl-C to shutdown server

[2010-01-19 11:07:26] INFO WEBrick 1.3.1

[2010-01-19 11:07:26] INFO ruby 1.8.7 (2009-12-24) [i686-linux]

[2010-01-19 11:07:32] INFO WEBrick::HTTPServer#start: pid=3446 port=3000

这样,WEBrick就在3000端口启动好了,输入http://localhost:3000会看到欢迎页面。

但当我访问我的应用时,http://localhost:3000/app/greeting时后台报错

no such file to load -- sqlite3

……

经过google,baidu后,发现是没有安装sqlite数据库和驱动的原因,因为ruby1.8默认数据库是sqlite,所以现在需要安装:

$ sudo apt-get install libsqlite3-dev

$ sudo gem install sqlite3-ruby

这样就安好了,然后如果你要欢成mysql数据库的话,同样需要安装数据库和驱动,如下:

$ sudo apt-get install mysql-server mysql-client

$ sudo apt-get install libmysql-ruby libmysqlclient-dev

$ sudo gem install mysql

现在再执行,

$ ruby script/server

启动好WEBrick服务器后,就可以访问到自己的web应用了,尽管很小,呵呵。

好了,到这里,你的第一个ruby rails web应用已经完成了。

当然,你或许比较习惯使用mysql数据库,那么,只要在使用rails创建应用时,加上一个-d mysql参数,就可以设置该应用程序后端使用的是mysql。如下:

$ rails blog -d mysql

这样,在config/database.yml文件中会是这样的:

development:

adapter: mysql

encoding: utf8

database: blog_development

pool: 5

username: root

password:

socket: /tmp/mysql.sock

到这里,基本的环境已经OK了,后面需要的是理论于实践的结合,还要好好学习才是哦。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: