-1

更新後の git フックを取得してサーバーを停止し、更新されたリポジトリから変更をプルして、サーバーを再起動しようとしています。フックは実行されていますが、エラーが発生し続けています。

エラーは次のとおりです。

remote: RVM is not a function, selecting rubies with 'rvm use ...' will not work.
remote: You need to change your terminal emulator preferences to allow login shell.
...
remote: /home/user/.rvm/rubies/ruby-1.9.3-p374/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find thin (>= 0) amongst [] (Gem::LoadError)
...
remote: fatal: Not a git repository: '.'

更新後のファイルは次のとおりです。

#!/bin/sh
PATH=/home/... (the value of "echo $PATH" on the remote server)
rvm use 1.9.3
cd /home/project_directory
thin stop
git pull ../gitdirectory.git
thin start -e production -p 3000 -d

rvm と thin を正確な場所、つまり「どの rvm」に置き換えても、エラーは解決されませんでした。

ここで何がうまくいかないのか、誰かが光を当てることができますか? ありがとう!

4

2 に答える 2

0

するrvm use ...必要がありますがsource $HOME/.rvm/scripts/rvm、これは shebang で使用したシェルでは機能しません#!/bin/sh

代わりに、次のスクリプトを試してください。

#!/bin/sh

cd /home/project_directory
source $( $HOME/.rvm/bin/rvm in . do rvm env --path )
thin stop
git pull ../gitdirectory.git
thin start -e production -p 3000 -d
于 2013-01-26T12:13:10.117 に答える
0

このrvm問題はよく知られており、腹立たしく、別の場所で回答されています。rvm サイトにリストされている手法を試してください。エラーに関しては、git単に間違ったディレクトリでコマンドを発行しているようです。フックのユーザーとしてサーバー上で実行しようとしましたか?

于 2013-01-26T03:59:37.027 に答える