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


暂时扔了mswin32 version of ruby 1.9.1  

Posted by Mindlern in

玩mswin32 版 ruby 1.9.1 没辙
rails 2.3 rc 1 安装正常
rack 0.9.1 修改后正常

但是这该死的数据库连接问题

sqlite3-ruby 1.2.3
与ruby 1.9.1 不兼容

曾经rails 2.3 rc1 报错 each Method
body.each 那行
害我修改啥的 弄半天
以为是rack问题
结果去翻日志
原来还是 sqlite3 driver 没有找到

想说放弃sqlite3 到mysql

mysql-ruby 2.8.1 兼容1.9.1 但无奈是windows
我没有安装编译环境

再到mysql 2.7.3
安装成功 但使用不成功
老是提示 specified module could not be found  大概这样的信息(具体忘了
查了PATH
mysql bin folder 在
ruby bin 也在
libmySQL.dll 也有放到相关目录
老是错误

真的放弃了

投靠cygwin 去

ps.jruby 也是真的好啊
jdbc 无论是sqlite3 还是mysql 都是直接安装的


sqlite3-ruby 1.2.3 与 ruby 1.9.1 不兼容  

Posted by Mindlern in

 无奈windows 环境下
 sqlite3-ruby 没有1.2.4 编译
 只能安装1.2.3
 看作者的BLOG
 Windows 编译工作给他造成很大麻烦
 停止后续版本的windows 编译工作
 征求其他人帮忙编译
 不过结果似乎不太好呢

 1.2.4 版 看反馈(都是MAC OS 平台的
 没有问题呢
 改道Mysql去

Rails 2.3 rc 1 command error under windows using cmd  

Posted by Mindlern in

测试rails 2.3  rc1
使用ruby 1.9.1

在cmd
执行rails -v
得到 The filename,directory name or volume label syntax is incorrect.

解决办法(solution)

打开ruby.bat
会看到
@"ruby.exe"" "D:/ruby/ruby 1.9.1/bin/rails" %1 %2 %3 %4 %5 %6 %7 %8 %9

@"ruby.exe"" "%~dpn0" %*


这里有两个双引号

改为

@"ruby.exe" "D:/ruby/ruby 1.9.1/bin/rails" %1 %2 %3 %4 %5 %6 %7 %8 %9

@"ruby.exe" "%~dpn0" %*


cmd rails -v

就正常了