13
二月

Ruby 1.9.1 and Rails 2.3 rc 1 on cygwin  

Posted by Mindlern in

总算是完成了ruby 1.9.1 和 rails 2.3 rc1 在cygwin 上的安装运行.

说说自己的安装经历吧(默认安装到/usr/local

首先安装cygwin

cygwin 安装的插件是

default + make + gcc + libiconv (后面编译需要) + openssl + git (从 github 拿gem 需要 当然也可以从网站直接下载) + vim (git 日

志使用)

cygwin下需要编译原文件

到ruby-lang(http://ruby-lang.org/) 下载ruby-1.9.1-p0.tar.gz

mkdir tmp

cd /tmp

将下好的gz 文件放到tmp文件夹

tar xvf ruby-1.9.1-p0.tar.gz
cd ruby-1.9.1-p0
./configure
make && make install

之后是sqlite3 (http://www.sqlite.org/download.html)
下载源代码
sqlite-3.6.10.tar.gz 放到tmp目录

tar xvf sqlite-3.6.10.tar.gz
mkdir bld
cd bld
../sqlite-3.6.10/configure -disable-tcl
make && make install
make sqlite3.dll
cp sqlite3.dll /usr/local/bin

最后是安装 sqlite3-ruby
gem install sqlite3-ruby (windows 死活搞不定的sqlite3-ruby 1.2.4

在说说 rails 2.3 rc 1 安装

gem install rake rack

gem install rails --source=http://gems.rubyonrails.org

rack 0.9.1 版不兼容 ruby 1.9.1 原因是 String.each method 被取消了

修改rack gem 目录下的
/lib/rack/handler/webrick.rb

原段落:
    vs.each { |v|
      res[k] = v
    }

改为:
    res[k] = vs

或者
到github 下载新的master 版
解压覆盖rack gem 目录下的文件

cd /usr/ruby/work
rails demo
cd demo
ruby script/server

此时提示找不到iconv.so (google 之后 似乎1.8.6以上版本不会自动生成iconv.so文件了
转到ruby 1.9.1 源代码处
cd /tmp/ruby-1.9.1-p0/ext/iconv
ruby extconf.rd  (如果之前cygwin 安装是没有选择libiconv 此处可能会有错误 再次运行cygwin安装文件 安装吧
会生成makefile
make
生成iconv.so 文件

make install
或者
cp iconv.so /usr/local/lib/ruby/1.9.1/i386-cygwin/

再次cd /usr/ruby/work/demo
ruby script/server
这次提示找不到openssl

openssl.so 文件安装方法同iconv.so

搞定之后

ruby script/server


转到浏览器
127.0.0.1:3000

可以看到rails 页面了

About your aplication's environment

Ruby version    1.9.1 (i386-cygwin)
RubyGems version    1.3.1
Rails version    2.3.0
Active Record version    2.3.0
Action Pack version    2.3.0
Active Resource version    2.3.0
Action Mailer version    2.3.0
Active Support version    2.3.0
Application root    /cygdrive/d/ruby/work/test/app
Environment    development
Database adapter    sqlite3
Database schema version    0

Ok


This entry was posted on 2009年2月13日星期五 at 星期五, 二月 13, 2009 and is filed under . You can follow any responses to this entry through the comments feed .

2 评论

匿名  

不错,学习!

2009年3月7日 01:45
匿名  

compiling socket
/cygdrive/d/cygwin/ruby-1.9.1-p0/lib/mkmf.rb:240:in `initialize': Permission den
ied - mkmftmp1.log (Errno::EACCES)
from /cygdrive/d/cygwin/ruby-1.9.1-p0/lib/mkmf.rb:240:in `open'
from /cygdrive/d/cygwin/ruby-1.9.1-p0/lib/mkmf.rb:240:in `log_open'
from /cygdrive/d/cygwin/ruby-1.9.1-p0/lib/mkmf.rb:245:in `open'
from /cygdrive/d/cygwin/ruby-1.9.1-p0/lib/mkmf.rb:274:in `block in postp
one'
from /cygdrive/d/cygwin/ruby-1.9.1-p0/lib/mkmf.rb:248:in `open'
from /cygdrive/d/cygwin/ruby-1.9.1-p0/lib/mkmf.rb:270:in `postpone'
from /cygdrive/d/cygwin/ruby-1.9.1-p0/lib/mkmf.rb:667:in `checking_for'
from /cygdrive/d/cygwin/ruby-1.9.1-p0/lib/mkmf.rb:859:in `have_struct_me
mber'
from /cygdrive/d/cygwin/ruby-1.9.1-p0/ext/socket/extconf.rb:107:in `〈top
(required)〉'
from ./ext/extmk.rb:150:in `load'
from ./ext/extmk.rb:150:in `extmake'
from ./ext/extmk.rb:434:in `block in 〈main〉'
from ./ext/extmk.rb:430:in `each'
from ./ext/extmk.rb:430:in `〈main〉'
make: *** [exts] Error 1

到这里就不行了,不知道咋回事?

2009年3月7日 06:05

发表评论