我在我的工作站上成功安装了厨师,但是当我尝试使用以下命令创建角色时
knife role create startmeup
我明白了
错误:RuntimeError:请设置EDITOR环境变量
知道问题是什么吗?
您必须将EDITOR
定义为环境变量。
尝试
export EDITOR=$(which vi)
要坚持这一点,请将其添加到~/.bashrc
或~/.bash_profile
。
Knife将knife.rb优先于环境变量。
如果没有提供配置,似乎刀将默认为vim(在我的系统上),因此在您准备为自定义编辑器(在我的情况下是脚本)配置环境之前,可以安全地省略该值。
没有明确的方法在knife.rb下设置变量。使用$ export EDITOR = vim(或任何你想保留的)导出你的shell是很好的。
即使没有在knife.rf下设置变量也可以。只需通过设置适当的值导出EDITOR即可。
在你的knife.rb文件(〜/ .chef / knife.rb)中为记事本++添加以下行:
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"
作品。
只需设置您的编辑器即可。在我的情况下,我使用vim编辑器,这就是为什么我的命令如下:
export EDITOR=vim
有几种方法可以解决这个问题。
export EDITOR=vim
将其导出,或将此行放在.bashrc等文件中;-e vim
(即--editor vim
)传递给knife
命令。例如,您可以这样做:
knife role create startmeup -e vim
knife[:editor] = "vim"
export EDITOR=vi
在我的情况下它工作。但对于ubuntu14.o版本vi编辑器退格不起作用。
将此条目添加到刀配置文件对我有用
knife[:editor] = "Notepad"
如果您的机器中安装了notepad ++:
knife environment create startmeup -e notepad++