1

Beanstalk を使用して、Rails 4 アプリを EC2 にデプロイしました。現在利用可能な ruby​​ 2.0 および rails 4.0 コンテナーがないため、インスタンスに ruby​​ 2.0 および rails 4.0 をインストールしました。

しかし、それでも乗客からエラーが発生しました:

Your Ruby version is 1.9.3, but your Gemfile specified 2.0.0 (Bundler::RubyVersionMismatch)

/var/app/current に cd して実行します

$ ruby -v 
ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-linux]

見逃したものはありますか?

ありがとう

いくつかの情報の更新:

$ which bundle
/usr/local/rvm/gems/ruby-2.0.0-p195/bin/bundle
$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.0.3
  - RUBY VERSION: 2.0.0 (2013-05-14 patchlevel 195) [x86_64-linux]
  - INSTALLATION DIRECTORY: /usr/local/rvm/gems/ruby-2.0.0-p195
  - RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-2.0.0-p195/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/rvm/gems/ruby-2.0.0-p195/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-linux
  - GEM PATHS:
     - /usr/local/rvm/gems/ruby-2.0.0-p195
     - /usr/local/rvm/gems/ruby-2.0.0-p195@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
4

2 に答える 2

2

Elastic Beanstalk はスクリプト at を使用してパッセンジャーを開始し/etc/init.d/passengerますが、bash ユーザーと同じ環境変数を取得するとは思いません。意味を確認するには、 に移動し/etc/init.d/passenger、次のように環境変数をログ ファイルに出力します。

# /etc/init.d/passenger
. /opt/elasticbeanstalk/support/envvars
env > /var/log/debug-rvm.log

次に、実行します

$> sudo service passenger restart
$> cat /var/log/debug-rvm.log

パッセンジャー プロセスが開始された時点で使用可能なすべての環境変数を表示します。

起動スクリプトは、これらの変数がどのように初期化されるかについての手がかりも与えてくれます。/opt/elasticbeanstalk/support/envvars.d/appenv特に、編集して独自のカスタム環境変数を追加できることを知りました。このファイルを使用して、変数を編集し、PATHrvm をロードできる場合があります。

あなたが参照した質問への回答を追加しました。これはあなたの目的に役立つかもしれません。

別の方法として、ruby 2.0 にシンボリック リンク/usr/bin/rubyを作成することもできますが、rvm をバイパスしているため、正しく作成するのは非常に難しいと思います。お役に立てれば。

$> ls -l /usr/bin/ruby
lrwxrwxrwx 1 root root 16 Jun  7 14:57 /usr/bin/ruby -> /usr/bin/ruby1.9
于 2013-06-10T03:31:29.477 に答える
0

パッセンジャーの設定は ruby​​ 1.8 または ruby​​ 2.0 を指していますか? また、Ruby 2.0 で動作するプレリリース版の Passenger はありますか?

sudo なしで実行 gem install passenger -preしてみてpassenger-install-apache2-module、パッセンジャー構成行が 1.8 または 1.9 ではなく 2.0 を指していることを確認してください。

于 2013-05-27T18:11:34.750 に答える