【问题标题】:Invalid configured shell error when running the official FreeBSD vagrant box运行官方 FreeBSD vagrant box 时配置的 shell 错误无效
【发布时间】:2016-02-28 07:57:37
【问题描述】:

我尝试使用以下命令运行官方的 FreeBSD vagrant box:

vagrant init freebsd/FreeBSD-10.2-STABLE

然后,根据https://forums.freebsd.org/threads/52717/ 的说明相应地修改我的 Vagrantfile,添加以下行:

Vagrant.configure("2") do |config|
  config.vm.guest = :freebsd
  config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true
  config.vm.box = "freebsd/FreeBSD-10.2-STABLE"
  config.ssh.shell = "sh"
  config.vm.base_mac = "080027D14C66"

  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "1024"]
    vb.customize ["modifyvm", :id, "--cpus", "1"]
    vb.customize ["modifyvm", :id, "--hwvirtex", "on"]
    vb.customize ["modifyvm", :id, "--audio", "none"]
    vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
    vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
  end
end

当我发出 vagrant up 命令时:

vagrant up --provider virtualbox

显示以下错误:

配置的shell(config.ssh.shell)无效,无法 正确执行命令。最常见的原因是使用 系统上不可用的 shell。请验证您正在使用 shell 的完整路径,并且 shell 可由 SSH 执行 用户。

不管错误如何,我仍然可以将vagrant ssh 输入框中。但是,我无法使用vagrant halt 正常关闭机器。它会显示与上述相同的错误,并且根本不会关闭。

【问题讨论】:

    标签: ssh vagrant freebsd vagrantfile


    【解决方案1】:

    修复很简单,因为这完全是我的菜鸟错误。在 Vagrantfile 中,您应该删除运行 vagrant init 命令时生成的所有部分,除了最顶部的两行。然后将建议的粘贴到这两行下方。完整的 Vagrantfile 应该如下所示:

    # -*- mode: ruby -*-
    # vi: set ft=ruby :
    
    Vagrant.configure("2") do |config|
        config.vm.guest = :freebsd
        config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", disabled: true
        config.vm.box = "freebsd/FreeBSD-10.2-STABLE"
        config.ssh.shell = "sh"
        config.vm.base_mac = "080027D14C66"
    
        config.vm.provider :virtualbox do |vb|
          vb.customize ["modifyvm", :id, "--memory", "1024"]
          vb.customize ["modifyvm", :id, "--cpus", "1"]
          vb.customize ["modifyvm", :id, "--hwvirtex", "on"]
          vb.customize ["modifyvm", :id, "--audio", "none"]
          vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
          vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
        end
    
        config.vm.network "private_network", ip: "192.168.33.10"
    end
    

    我做错了将这个 Vagrant.configure("2") do |config| 块嵌套在自动生成的块中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-05
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 2015-01-26
      • 1970-01-01
      • 2013-07-17
      • 2020-12-12
      相关资源
      最近更新 更多