概要 ある晴れた日のこと。内部で sudo してる Capistrano のレシピを実行したら、こんな風に怒られた… sorry, you must have a tty to run sudo deploy.rb に set :use_sudo, true と書くだけでは sudo は使えないのかな? 解決方法 これは deploy.rb の中で default_run_options[:pty] = true と書けば動くようになった。 原因と理由 まず tty って何? tty でググると… ttyとは、標準入出力となっている端末デバイス (制御端末、controlling terminal) の名前を表示するUnix系のコマンドである。 って Wikipedia に書いてある。 つまりは you must have a tty to run sudo ってのは「端末がないとダメよ。