PTYs

有一个配置选项要求后端驱动程序请求远程主机为连接分配一个ptypty 是一个伪终端,实际上意味着告诉后端这是一个交互式会话。这通常是一个不好的主意。

大多数差异最好由rbenv 作者的此页面解释。

当 Capistrano 建立连接时,它是一个非登录非交互式 shell。这不是偶然的!

它通常被用作一种权宜之计,用于解决 RVM 和 rbenv 未加载登录和 shell 初始化脚本相关的问题。在这些情况下,RVM 和 rbenv 是导致问题的工具,或者至少它们的使用方式不正确。

虽然,尤其是在语言运行时(特别是 Ruby、Node、Python 及其朋友)的情况下,人们很想在单个服务器上并行运行多个版本,并使用环境变量在它们之间切换,但这是一种反模式,并且是设计不良的症状(例如,您正在生产环境中测试 Ruby 的第二个版本,因为您的公司缺乏在暂存环境中测试它的基础设施)。

Fork me on GitHub