Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Capistrano 3许可被拒绝_Ruby On Rails_Ruby_Capistrano_Capistrano3 - Fatal编程技术网

Ruby on rails Capistrano 3许可被拒绝

Ruby on rails Capistrano 3许可被拒绝,ruby-on-rails,ruby,capistrano,capistrano3,Ruby On Rails,Ruby,Capistrano,Capistrano3,我正在将一个应用程序从capistrano版本2转换为版本3,现在出现以下错误: DEBUG [7095ead3] Running /usr/bin/env git ls-remote git@myapp.git.beanstalkapp.com:/myapp/myapp.git on myapp.com DEBUG [7095ead3] Command: ( GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/myapp.com/git-ssh.sh /usr/bin/env

我正在将一个应用程序从capistrano版本2转换为版本3,现在出现以下错误:

DEBUG [7095ead3] Running /usr/bin/env git ls-remote git@myapp.git.beanstalkapp.com:/myapp/myapp.git on myapp.com
DEBUG [7095ead3] Command: ( GIT_ASKPASS=/bin/echo GIT_SSH=/tmp/myapp.com/git-ssh.sh /usr/bin/env git ls-remote git@myapp.git.beanstalkapp.com:/myapp/myapp.git )
DEBUG [7095ead3]        fatal: cannot exec '/tmp/myapp.com/git-ssh.sh': Permission denied
DEBUG [7095ead3]        fatal: unable to fork
DEBUG [7095ead3] Finished in 0.195 seconds with exit status 128 (failed).

我怎样才能克服这个问题?

我相信这是Capistrano内部的一个bug。您必须从:应用程序变量中删除空白

查看此处了解更多信息:

我遇到了这个问题,通过阅读这个网站()

所以,这就是我所尝试的

  • 在主目录中创建tmp目录
  • 我在.bashrc中添加了

    导出TMPDIR=“$HOME/tmp”

  • 在deploy.rb中,添加以下内容

    set:tmp_dir,“{fetch(:home)}/tmp”


然后,再次尝试限制生产部署,这对我有效,希望对您也有效!:D

您是否可以使用capistrano将应用程序直接克隆到服务器上?请检查该选项,因为.ssh配置中可能存在错误。如果您是对的,我实际上无法从服务器上运行该命令。这是在capistrano 2中从未做过的新事情吗?就像cap 2是否在本地签出代码,然后将其推送到服务器?再仔细想想,我不一定能够在服务器上运行该命令,因为当我在我的开发机器上运行该命令时,我有一个选项
forward\u agent:true
集,它会传递我的凭据(包括密钥)我可以看到你的GIT_SSH正在尝试在/tmp中进行克隆,我不确定你的服务器/tmp上是否允许使用可执行文件和脚本,你可以在/home/中创建你的tmp目录,看看这是否有帮助..我可以,但是如何修改capistrano任务,使其知道如何使用我指定的tmp dir?为什么需要在.bashrc中添加TMPDIR变量?由于某些原因,
fetch(:home)
对我不起作用。在我的配置中,使用
fetch(:stage)
是有意义的,我这样做了。我还必须设置主页:
set:home,/home/mysite'
set:tmp\u dir,“{fetch(:home)}/tmp”