-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问题是众所周知的,令人恼火的,并在其他地方得到了回答。尝试rvm 站点上列出的技术。至于git错误,看起来您只是在错误的目录中发出命令。您是否尝试过以钩子用户的身份在服务器上运行它?

于 2013-01-26T03:59:37.027 回答
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 回答