Capistrano"没有tty存在且没有指定askpass程序"

Mar*_*cus 7 postgresql ubuntu capistrano ruby-on-rails

我跑cap production deploy,我不断收到以下错误sudo: no tty present and no askpass program specified/usr/bin/env sudo mkdir -pv /home/[user]/apps/[app name] as [user@myIP]

我不知道如何解决这个问题.

Capfile:

require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/rvm'
require 'capistrano/bundler'
require 'capistrano/rails/migrations'
require 'capistrano/passenger'
require 'capistrano/safe_deploy_to'
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Mik*_*e S 17

一种解决方案是在服务器上允许sudo命令而不输入密码,但这可能存在安全风险.

或者,您可以修复Capistrano配置,因为可能出现问题.如果你向我们展示你deploy.rb文件的内容会有所帮助,但我要做的第一件事就是确保你已经default_run_options[:pty]设置truedeploy.rb.如果您遗漏了该行,请添加该行.

卡皮斯特拉诺2

default_run_options[:pty] = true
Run Code Online (Sandbox Code Playgroud)

卡皮斯特拉诺3

set :pty, true
Run Code Online (Sandbox Code Playgroud)

  • 密码显示简单的文本,并在输入时没有任何反应 (8认同)
  • 此命令仅适用于capistrano 2,不适用于3 (2认同)
  • 碰碰-这也发生在我身上。我可以以纯文本形式输入密码,但是按Enter键时没有任何反应。 (2认同)