我有一个RoR应用程序在Fedora14下工作很有趣,我升级到Fedora16,现在它已经崩溃了。
这是由于使用的导轨发生了变化,Fedora 14运行在2.x上,现在Fedora 15/16运行3.x
我安装了rvm,之前我没有安装rails gem,所以它会回退到系统(?)。所以我已经为rails 2.3.8安装了gem,它出现在我做一个gem列表但是应用程序仍然是一个破碎的混乱。
任何人都有任何线索,我应该检查,做什么,粉碎?
所以我把它添加到我的config / enviroment.rb
config.gem "rails", :version => "~> 2.3.8"
当我开始时,我现在得到这个错误(这一切都在一行上)。
Error message:
NOTE: Gem.source_index is deprecated, use Specification.
It will be removed on or after 2011-11-01. Gem.source_index called from /var/work_sites/mysite/vendor/rails/railties/lib/rails/gem_dependency.rb:106.
NOTE: Gem::SourceIndex#search is deprecated with no replacement.
It will be removed on or after 2011-11-01. Gem::SourceIndex#search called from /var/work_sites/mysite/vendor/rails/railties/lib/rails/gem_dependency.rb:106.
Missing these required gems: rails ~> 2.3.8 You're running: ruby 1.8.7.357 at /usr/bin/ruby rubygems 1.8.11 at /usr/lib/ruby/gems/1.8, /home/nick/.gem/ruby/1.8 Run `rake gems:install` to install the missing gems.
然而 $ gem list
*** LOCAL GEMS ***
...
rails (2.3.8)
....
所以我还是试试;
$ rake gems:install
rake/rdoctask is deprecated. Use rdoc/task instead (in RDoc 2.4.2+)
Missing these required gems:
rails ~> 2.3.8
You're running:
ruby 1.8.7.352 at /home/nick/.rvm/rubies/ruby-1.8.7-p352/bin/ruby
rubygems 1.8.10 at /home/nick/.rvm/gems/ruby-1.8.7-p352, /home/nick/.rvm/gems/ruby-1.8.7-p352@global
Run `rake gems:install` to install the missing gems.
ARGHH!
$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.10
- RUBY VERSION: 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
- INSTALLATION DIRECTORY: /home/nick/.rvm/gems/ruby-1.8.7-p352
- RUBY EXECUTABLE: /home/nick/.rvm/rubies/ruby-1.8.7-p352/bin/ruby
- EXECUTABLE DIRECTORY: /home/nick/.rvm/gems/ruby-1.8.7-p352/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /home/nick/.rvm/gems/ruby-1.8.7-p352
- /home/nick/.rvm/gems/ruby-1.8.7-p352@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
答案 0 :(得分:0)
如果应用程序是“合理大小”(里程可能会有所不同),请利用此机会升级到rails 3. Rails 4将于今年春季推出,您将发现没有比现在更好的时间进行升级。我最初会做v3.0.11,如果顺利的话会转到3.1.x. 面对它,你不想很快再次这样做。此时,您还会发现,遇到的任何问题通常都会被其他人遇到并修复,并且可以在网上找到,通过SO等等。
这些将有所帮助:
http://railscasts.com/episodes/225-upgrading-to-rails-3-part-1
http://ryanbigg.com/2010/11/the-rails-3-upgrade/
http://www.railsupgradehandbook.com/(12美元)
Ruby和Rails的变化非常迅速,保持一定的流动性非常重要,而不仅仅是“很好”。在这一点上,宝石更符合rails 3
当你在它时,你应该安装ruby 1.9.3除非代码有复杂的ruby,否则很可能你会遇到很少的问题。毕竟Ruby 2.0将很快出现。
正如其他人所说,rvm是管理ruby版本的关键。安装完成后,可以使用rvm use 1.9.2
之类的命令切换ruby版本,然后在项目的根目录中创建一个.rvrmc文件,为该项目设置ruby版本。
除了安装gem之外你需要做的一件事就是将它放在你的环境文件中 - rails 2或你的Gemfile和Bundle中 - rails 3