锁定老帖子 主题:在Ruby旧版本上进行升级
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-18
最后修改:2009-05-18
由于ruby的内存泄漏很严重,我在网上也找到了不少资料,为了利用已有的成果(打补丁什么地:解决ruby内存泄漏的超级大补丁发布啦 ),我就来了个蛮力ruby版本升级。 原先的系统环境 写道
原先的系统各个工具均来自apt-get,所以有如下基本安装的东西:
Ruby 1.8.6 p111 gem 通过外部安装了Redland ruby api 另外通过gem install安装了: *** LOCAL GEMS *** actionmailer (2.1.2) actionpack (2.1.2) activerecord (2.1.2) activeresource (2.1.2) activesupport (2.1.2) cgi_multipart_eof_fix (2.5.0) daemons (1.0.10) fastthread (1.0.1) gem_plugin (0.2.3) mongrel (1.1.5) mongrel_cluster (1.0.5) mysql (2.7) nokogiri (1.2.3) rails (2.1.2) rake (0.8.4) ruby-ole (1.2.8.2) 现在需要对Ruby进行升级,并要求:
首先当然是下载通用版本Ruby 1.8.7p72和外部补丁,并按照补丁安装规程进行基本的配置。 基本步骤 写道
1、下载ruby 1.8.7-p72,并且解压缩
2、下载MBARI补丁,并且解压缩 3、执行命令:MBARIp72patches/apply ruby-1.8.7-p72 打补丁 再通过以上操作后,现在我们需要编译了。 通过apt-get安装的工具中ruby是被放在/usr/lib/ruby里面的,所以在configure时候需要加入相关参数。 配置并编译 写道
CFLAGS="-O2 -fno-stack-protector -mpreferred-stack-boundary=2" ./configure --prefix=/usr/lib
#如果是gcc3.3版本,要去掉 -fno-stack-protector编译参数;如果是64位机器,-mpreferred-stack-boundary=4才行。 make 在做完这些工作后,有很多朋友就开始考虑安装了,在这个时候大家需要小心,仔细参看gem安装文件中是否有完整的rubygems包,如果没有需要安装。(关系到Ruby gem的使用问题 ,详情可见:在mac上安装多个版本的ruby ) 我这里没有,于是就通过gem install 安装了一个,现在的gem有 *** LOCAL GEMS *** rubygems-update (1.3.3)
sudo make install
然后我们现在看看ruby的版本吧 ruby -v ruby 1.8.7 (2009-3-1 mbari 8B/0x8770 on patchlevel 72) [i686-linux] ruby1.8 -v 很郁闷这个的版本没有变化,还是老版本,处理掉: sudo rm /usr/bin/ruby1.8 sudo ln -s /usr/bin/ruby /usr/bin/ruby1.8
现在开始恢复rubygems,进入rubygems-update的目录,然后执行 sudo ruby setup.rb 这样一来我们的rubygems就可以使用了。
最后,至少我这里还需要重新安装下redland.(希望有朋友能给出好的解决办法)
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-05-19
When I type script/console, I get this error: [root@trebek2 readline]# /usr/local/bin/myapp/script/console Loading development environment. /usr/local/lib/ruby/1.8/irb/completion.rb:10:in `require': no such file to load -- readline (LoadError) from /usr/local/lib/ruby/1.8/irb/completion.rb:10 from /usr/local/lib/ruby/1.8/irb/init.rb:252:in `require' from /usr/local/lib/ruby/1.8/irb/init.rb:252:in `load_modules' from /usr/local/lib/ruby/1.8/irb/init.rb:250:in `each' from /usr/local/lib/ruby/1.8/irb/init.rb:250:in `load_modules' from /usr/local/lib/ruby/1.8/irb/init.rb:21:in `setup' from /usr/local/lib/ruby/1.8/irb.rb:54:in `start' from /usr/local/bin/irb:13 也就是说rails的script/console无法运行。 这个时候需要安装些东西啦。 详情:http://railsforum.com/viewtopic.php?id=14452 sudo apt-get install libncurses5-dev libreadline5-dev #go to the <ruby_src>/ext/readline, ruby extconv.rb #generate valid makefile make sudo make install |
|
返回顶楼 | |
浏览 2932 次