ruby gems compatible issue

装了 Rails 2.1 以后升级了一些相应的 gems,比如 rubyforge, rubygem 之类。再到一个 Rails 1.2.3 的项目下运行 script/server, 收到错误提示:

can’t activate rubyforge (=0.4.4), already activated rubyforge-1.0.0

搜索一下很多人遇到同样的问题,因为安装的 rubyforge 版本太多了,解决方法就是删掉所有的再装一个最新版:

sudo gem uninstall -a rubyforge
sudo gem install rubyforge

再运行又遇到问题:

RedCloth is not a class (TypeError)

RedCloth 之前用的 3.0.4,后来装了 4.0.1,据说 4.x 的 main class 不再是 RedCloth,而改成了 RedCloth::TextileDoc,无语。后来发现新的 rubygems 可以指定版本来引入 gem:

require ‘rubygems’
gem ‘RedCloth’, ‘3.0.4′

再测试问题解决,或许将 3.0.4 freeze 到 vendor 下更好些?

Tags: ,

Leave a Reply