7

rails4 アプリを VPS にデプロイ中にエラーが発生しました。私が得ているエラーは

rbenv: version `2.0.0' is not installed

しかし、「ruby -v」を使用すると、

ruby 2.0.0p0 (2013-02-24 revision 39474) [i686-linux]

そして、私のgemfileには

source 'https://rubygems.org'

ruby '2.0.0'
gem 'rails', '4.0.0'

このエラーは、バンドル インストール レシピの後に表示されます

2013-08-04 23:23:56 executing `bundle:install'
* executing "cd /home/yasinishyn/apps/kaiser/releases/20130804202355 && bundle install --gemfile /home/yasinishyn/apps/kaiser/releases/20130804202355/Gemfile --path /home/yasinishyn/apps/kaiser/shared/bundle --deployment --quiet --without development test"
servers: ["xxx.xxx.xxx.xxx"]
[198.211.125.183] executing command
** [out :: xxx.xxx.xxx.xxx] rbenv: version `2.0.0' is not installed
** [out :: xxx.xxx.xxx.xxx] 
command finished in 355ms
*** [deploy:update_code] rolling back
* executing "rm -rf /home/yasinishyn/apps/kaiser/releases/20130804202355; true"
servers: ["xxx.xxx.xxx.xxx"]
[xxx.xxx.xxx.xxx] executing command
command finished in 342ms

これを理解するのを手伝ってください。

4

2 に答える 2

6

ベンジャミン、ありがとう、でもエラーは本当にばかげていた ))。Localy rvm によってインストールされた ruby​​ 2.0.0-p195 を使用します。私のサーバーでは、rbenv には ruby​​ パッケージ 2.0.0-p195 がないため、rbenv によってインストールされた ruby​​ 2.0.0-p0 を使用しています。

そこで、rails-composer で新しい rails4 アプリを作成しているときに、 .ruby-versionファイルで作成され、その中に ruby​​ バージョンruby​​ 2.0.0-p195の行があることに気付かなかったので、単純に* git rm .ruby-version*、すべてが機能しています。

于 2013-08-05T07:15:43.140 に答える
4

これは間違いなく PATH の問題です。capistrano はコンソール セッションを開かずに ssh 経由でコマンドを送信し、ssh コンソール セッションを開いた場合、プロファイル ファイルは同じ方法でロードされません。これは、ssh コンソールを介して正しい rbenv 環境を取得できるが、capistrano を介して取得できない理由を説明している可能性があります。

以下はdebian / ubuntuで動作し、他のディストリビューション用に調整する必要があります

exportプロファイル ファイルの 1 つに何らかの指示を追加したと思います。~/.profile または ~/.bashrc おそらく。

私が使用する手順は次のexportとおりですが、構成によっては異なる場合があるため、ssh コンソールを開いたときに rbenv が適切に機能していれば、一連のexportコマンドを保持できます。詳細に説明するトリックは、それらを適切な場所に配置することです。

私のexport指示は次のとおりです。

echo 'export RBENV_ROOT=/opt/rbenv'
echo 'export PATH=/opt/rbenv/bin:$PATH'
echo 'eval "$(rbenv init -)"'

1-

以前にそれらを含めたすべてのファイルからそれらを削除し、ファイル /etc/profile.d/rbenv に配置します

2-

ファイル /root/.bashrc (「root」以外のユーザーでサーバーにアクセスする場合は /home/your_user/.bashrc) を編集し、行のsource /etc/profile.d/rbenv直前に次の行を追加します。[ -z "$PS1" ] && return

3-

ファイル /home/deployer/.bashrc を編集し (カピストラーノに「デプロイヤー」ユーザーを使用していると仮定します。それ以外の場合はパスを調整します)、行の source /etc/profile.d/rbenv 直前に行を追加します[ -z "$PS1" ] && return

4-

別の ssh コンソール セッションを開いてruby -v. その後、カピストラーノは正しく動作するはずです

その他の可能性

手動で gem をインストールした後に rbenv を再ハッシュする必要があるため、rbenv rehash念のためサーバー上で実行してください。

于 2013-08-05T00:59:38.797 に答える