【问题标题】:Chef - ERROR: RuntimeError: Please set EDITOR environment variableChef - 错误:RuntimeError:请设置 EDITOR 环境变量
【发布时间】:2019-03-19 05:33:09
【问题描述】:

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

knife role create startmeup

我明白了

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

知道问题出在哪里吗?

【问题讨论】:

    标签: chef-infra


    【解决方案1】:

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

    试试

    export EDITOR=$(which vi)
    

    要保留此内容,请将其添加到 ~/.bashrc~/.bash_profile

    【讨论】:

    • 如何在 Windows 中设置编辑器?
    • 你可以用同样的方式做——至少只要你使用msysgit。打开 Git Bash 并执行 ls .bash* 以查看文件 .bashrc.bash_profile 是否存在。然后编辑(或创建一个新的)并将该行放在那里。
    • 如果您不使用 Git Bash,请提供更多信息。
    • 在 Windows 上,我必须使用转义的 8.3 表示法指定完整路径,例如刀[:editor] = "C:\\Progra~2\\Notepa~1\\Notepad++.exe"。见tickets.opscode.com/browse/CHEF-4503
    • 也可以配置单引号和双引号。即:knife[:editor] = '"C:\Program Files (x86)\Notepad++\notepad++.exe"' 有效。
    【解决方案2】:

    在您的 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"
    

    【讨论】:

      【解决方案3】:

      我使用这样的东西:

      knife role create startmeup -e vi
      

      【讨论】:

        【解决方案4】:

        如果你想为那个会话设置它,命令

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

        有效。

        【讨论】:

          【解决方案5】:

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

          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"

          【讨论】:

            【解决方案6】:

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

            export EDITOR=vim
            

            【讨论】:

            • 这个答案是几天前给出的。
            【解决方案7】:
            export EDITOR=vi   
            

            在我的情况下它有效。但是对于 ubuntu14.o 版本 vi 编辑器退格不起作用。

            【讨论】:

              【解决方案8】:

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

              knife[:editor] = "Notepad"
              

              【讨论】:

                【解决方案9】:

                如果你的机器上安装了notepad++:

                knife environment create startmeup -e notepad++
                

                【讨论】:

                  【解决方案10】:

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

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

                  【讨论】:

                    【解决方案11】:

                    没有明确的方法来设置knife.rb 下的变量。 使用它在您的外壳上导出很好 $export EDITOR=vim(或任何你想保留的)。

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

                    【讨论】:

                    • 我很抱歉:(有办法在knife.rb文件中设置EDITOR值,效果很好。
                    猜你喜欢
                    • 2014-09-24
                    • 2014-12-03
                    • 2013-06-30
                    • 2020-11-18
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2015-11-23
                    • 1970-01-01
                    相关资源
                    最近更新 更多