0

这可能是一个菜鸟问题,但是在对图像进行一些更改vagrant up然后安装一些东西之后,我然后调用vagrant package --box [name] --output [new.box].

在我创建一个新的 vagrant init 之后new.box,它没有我在打包的盒子上安装的新东西。

有人知道我在做什么错吗?

4

1 回答 1

0

原因可能是您使用了相同的框名。

正如你所描述的,你已经做了这样的事情:

  1. 创建了一个Vagrantfile

    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
      config.vm.box = 'base'
      config.vm.box_url = 'http://the-url-of-box-you-used-as-base.com/precise.box'
    end
    
  2. vagrant up

  3. vagrant ssh=> 你做了一些改变
  4. vagrant package --box [name] --output [new.box]
  5. 编辑原始Vagrant文件(或创建一个新文件)以加载新框:

    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
      config.vm.box = 'base'
      config.vm.box_url = 'my-new.box'
    end
    

在这里我假设你保持config.vm.box不变,这意味着 Vagrant 没有使用你的盒子,而是原来的上一个盒子,因为你的~/.vagrant.d/boxes.

可能有两种解决方案:

  1. 更改名称Vagrantfile(如果您在生成自定义框时实际使用了不同的名称)
  2. 删除具有该名称的缓存框 = 删除~/.vagrant.d/boxes/[name]
于 2013-08-25T18:58:26.753 回答