【发布时间】:2019-03-19 05:33:09
【问题描述】:
我已经在我的工作站上成功安装了 chef,但是当我尝试使用以下命令创建角色时
knife role create startmeup
我明白了
错误:RuntimeError:请设置 EDITOR 环境变量
知道问题出在哪里吗?
【问题讨论】:
标签: chef-infra
我已经在我的工作站上成功安装了 chef,但是当我尝试使用以下命令创建角色时
knife role create startmeup
我明白了
错误:RuntimeError:请设置 EDITOR 环境变量
知道问题出在哪里吗?
【问题讨论】:
标签: chef-infra
您必须将EDITOR 定义为环境变量。
试试
export EDITOR=$(which vi)
要保留此内容,请将其添加到 ~/.bashrc 或 ~/.bash_profile。
【讨论】:
msysgit。打开 Git Bash 并执行 ls .bash* 以查看文件 .bashrc 或 .bash_profile 是否存在。然后编辑(或创建一个新的)并将该行放在那里。
knife[:editor] = '"C:\Program Files (x86)\Notepad++\notepad++.exe"' 有效。
在您的 knife.rb 文件 (~/.chef/knife.rb) 中为 notepad++ 添加以下行:
knife[:editor] = "C:\\progra~2\\notepa~1\\notepad++.exe -nosession -multiInst"
或者如果你只是想使用记事本
knife[:editor] = "notepad"
或 GNU 的 emacs
knife[:editor] = "emacs"
【讨论】:
我使用这样的东西:
knife role create startmeup -e vi
【讨论】:
如果你想为那个会话设置它,命令
set EDITOR="C:\Program Files (x86)\Notepad++\notepad++.exe"
有效。
【讨论】:
有几种方法可以解决这个问题。
设置环境变量$EDITOR。你可以在 shell 中通过export EDITOR=vim 导出它,或者将这一行放在 .bashrc;
将选项-e vim(即--editor vim)传递给knife 命令。例如,您可以这样做:
knife role create startmeup -e vim
修改~/.chef/knife.rb,添加这一行:
knife[:editor] = "vim"
【讨论】:
只需设置您的编辑器,它就会工作。就我而言,我使用 vim 编辑器,这就是为什么我的命令如下:
export EDITOR=vim
【讨论】:
export EDITOR=vi
在我的情况下它有效。但是对于 ubuntu14.o 版本 vi 编辑器退格不起作用。
【讨论】:
将此条目添加到刀配置文件对我有用
knife[:editor] = "Notepad"
【讨论】:
如果你的机器上安装了notepad++:
knife environment create startmeup -e notepad++
【讨论】:
Knife 将 knife.rb 优先于环境变量。
如果没有提供配置,knife 似乎默认为 vim(无论如何在我的系统上),因此在您准备好为自定义编辑器配置环境之前省略该值是安全的(在我的情况下,a脚本)。
【讨论】:
没有明确的方法来设置knife.rb 下的变量。 使用它在您的外壳上导出很好 $export EDITOR=vim(或任何你想保留的)。
即使没有在knife.rf 下设置变量,它也可以工作。只需通过设置适当的值来导出 EDITOR。
【讨论】: