0

シンサーバーを使用して実行するバージョン2.3.8のRailsアプリケーションがいくつかあります。テスト目的で、同じマシンにRails3.0.1をインストールしたいと思います。

インストールは正常に機能しましたが、Rails 3.0.1をインストールした後、Rails 2.3.8アプリケーションをthinで実行すると、次のエラーで失敗します。

>> Using rails adapter
Missing the Rails 2.3.8 gem. Please `gem install -v=2.3.8 rails`,
update your RAILS_GEM_VERSION setting in config/environment.rb for
the Rails version you do have installed, or comment out RAILS_GEM_VERSION
to use the latest version installed.

Rails 3がインストールされている最新バージョンのラック(1.2.1)に問題があるようです。ラック1.2.1をアンインストールし、ラック1.1.0のみを保持すると、Rails2.3.8アプリケーションは問題なく実行されます。

environment.rbのconfig.gemでラックバージョンを指定しても、問題は解決しません。ラック1.1.0gemをvendor/gemsディレクトリに解凍しても、何も変更されません。

ラック1.2.1では、Rails2.3.8アプリケーションを起動できません。ラック1.2.1がないと、Rails3.0.1アプリケーションを起動できません。

私がオンラインで見つけたすべての解決策は、ラックの宝石を開梱することですが、これは私にはうまくいかないようです。他にやるべきことはありますか?

4

3 に答える 3

2

RVMシステム全体を使用してRuby1.9.2p0をインストールし、Thinを使用して同じサーバー上でRails3と2.3.10を使用してアプリを実行しています。

Rails 2.3.10アプリ(http://gembundler.com/rails23.html)にバンドラーを設定する必要があります。

これがRails2.3.10アプリのGemfileの1つです。ラックのバージョンを指定することが重要です。

source :gemcutter
gem "rack", "~> 1.1.0"
gem "rails", "~> 2.3.10"
gem "will_paginate", "~> 2.3.15"
gem 'haml'
gem 'mysql2'
gem 'authlogic'
gem 'searchlogic'
gem 'paperclip'
gem 'thin'

Rails 2.3.10の場合、以下を使用してアプリディレクトリからthinを開始する必要があります。

bundle exec thin start <options here>

RVMを使用していて、initスクリプトからアプリを起動しようとしている場合は、次をお読みください:RVMとシン、ルートとローカルユーザー

于 2011-03-05T21:20:15.937 に答える
0

Rails 2.3.5アプリとThin(1.2.7)でも同じ問題が発生しました。しなければならなかった:

gem uninstall rack --version 1.2.1
gem uninstall rack --version 1.1.0

それは私にバージョン1.0.1だけを残し、それからそれはうまくいきました。

あなたと同じように、私はアプリをRails 3に移行しようとして混乱します。1つの解決策は、rvm(私はすでに使用しています)と、特定のアプリケーションの特定のgemを分離するgemsetの概念を使用することです。私はまだそれらで遊んでいません。

うまくいけば、「薄い」人々はこれを整理するでしょう。

于 2010-10-21T21:31:11.197 に答える
0

Rubyを別々の場所に2回インストールすることで、両方のRailsバージョンを実行することができました。

しかし、Rubyを1つだけで実行する方法を見つけた人がいたら、知りたいと思います。

于 2010-10-22T13:07:38.497 に答える