34

我已经在我的工作站上成功安装了厨师,但是当我尝试使用以下命令创建角色时

knife role create startmeup

我明白了

错误:RuntimeError:请设置 EDITOR 环境变量

知道问题是什么吗?

4

11 回答 11

43

您必须定义EDITOR为环境变量。

尝试

export EDITOR=$(which vi)

要坚持这一点,请将其添加到~/.bashrcor ~/.bash_profile

于 2013-03-22T18:58:59.090 回答
28

在您的 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"
于 2014-09-09T12:33:22.597 回答
4

我使用这样的东西:

knife role create startmeup -e vi
于 2014-06-30T20:01:41.883 回答
3

如果要为该会话设置它,命令

set EDITOR="C:\Program Files (x86)\Notepad++\notepad++.exe"

作品。

于 2013-05-08T23:20:04.280 回答
3

有几种方法可以解决这个问题。

  1. 设置环境变量 $EDITOR。您可以通过在 shell 中导出它export EDITOR=vim,或者将此行放在.bashrc之类的文件中;

  2. 选项-e vim(即--editor vim)传递给knife命令。例如,您可以这样做:

    knife role create startmeup -e vim

  3. 修改~/.chef/knife.rb添加这一行:

    knife[:editor] = "vim"

于 2015-12-02T07:11:09.077 回答
2

只需设置您的编辑器,它就会工作。就我而言,我使用 vim 编辑器,这就是为什么我的命令如下:

export EDITOR=vim
于 2013-03-25T10:14:14.973 回答
0
export EDITOR=vi   

就我而言,它有效。但是对于 ubuntu14.o 版本 vi 编辑器退格键不起作用。

于 2014-05-19T07:56:41.620 回答
0

将此条目添加到刀配置文件对我有用

knife[:editor] = "Notepad"
于 2014-06-26T13:51:47.950 回答
0

Knife 将 knife.rb 优先于环境变量。

如果没有提供配置,knife 似乎将默认为 vim(无论如何在我的系统上),因此在您准备好为自定义编辑器(在我的情况下为脚本)配置环境之前省略该值是安全的。

于 2019-03-18T21:33:09.557 回答
0

如果您的机器上安装了记事本++:

knife environment create startmeup -e notepad++
于 2018-09-05T15:29:51.643 回答
-2

没有明确的方法来设置knife.rb 下的变量。使用 $export EDITOR=vim (或您想保留的任何一个)在您的 shell 上导出是件好事。

即使没有在knife.rf 下设置变量,它也可以工作。只需通过设置适当的值来导出 EDITOR。

于 2015-02-13T10:02:59.773 回答