Chef infra Chef-错误:RuntimeError:请设置编辑器环境变量

Chef infra Chef-错误:RuntimeError:请设置编辑器环境变量,chef-infra,Chef Infra,我已在工作站上成功安装了chef,但在尝试使用以下命令创建角色时 knife role create startmeup 我明白了 错误:RuntimeError:请设置编辑器环境变量 知道问题是什么吗?您必须将编辑器定义为环境变量 试一试 若要保持此状态,请将其添加到~/.bashrc或~/.bash\u profile只需设置编辑器即可。在我的例子中,我使用vim editor,这就是为什么我的命令如下所示: export EDITOR=vim 如果要为该会话设置它,命令 set EDI

我已在工作站上成功安装了chef,但在尝试使用以下命令创建角色时

knife role create startmeup
我明白了

错误:RuntimeError:请设置编辑器环境变量


知道问题是什么吗?

您必须将
编辑器
定义为环境变量

试一试


若要保持此状态,请将其添加到
~/.bashrc
~/.bash\u profile

只需设置编辑器即可。在我的例子中,我使用vim editor,这就是为什么我的命令如下所示:

export EDITOR=vim

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

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


在我的例子中,它起作用了。但是对于ubuntu14.o版本vi编辑器,退格不起作用。

将此条目添加到刀配置文件对我来说很有效

knife[:editor] = "Notepad"

我用这样的方式:

knife role create startmeup -e vi
在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.rb下的变量。 在shell上使用 $export EDITOR=vim(或您希望保留的任何内容)


即使不在knife.rf下设置变量,它也可以工作。只需设置适当的值即可导出编辑器。

有几种方法可以解决此问题

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

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

    knife role create startmeup -e vi
    
    刀角色创建启动MEUP-e vim

  • 通过添加此行修改~/.chef/know.rb

    knife[:editor]=“vim”


  • 如果您的计算机中安装了记事本+:

    knife environment create startmeup -e notepad++
    

    刀子优先于环境变量Knife.rb


    如果没有提供配置,刀子似乎会默认为vim(无论如何,在我的系统上),因此在准备为自定义编辑器(在我的例子中是脚本)配置环境之前,可以安全地忽略该值

    这是几天前给出的答案。我如何在Windows中设置编辑器?您可以用同样的方法进行设置-至少只要您使用
    msysgit
    。打开Git-Bash并执行
    ls.Bash*
    以查看是否存在
    .bashrc
    .Bash\u profile
    文件之一。然后编辑(或创建一个新的)并将该行放在那里。如果您没有使用Git Bash,请提供更多信息。在Windows上,我必须使用转义的8.3符号指定完整路径,例如刀[:编辑器]=“C:\\Progra~2\\Notepa~1\\Notepad++.exe”。请参阅,您还可以使用单引号和双引号对其进行配置。也就是说:
    knife[:editor]=“C:\Program Files(x86)\Notepad++\Notepad++.exe”
    可以正常工作。很抱歉:(有办法在knife.rb文件中设置编辑器值,效果非常好。
    knife environment create startmeup -e notepad++