Ubuntu 通过Chef solo和Vagrant安装apt包

Ubuntu 通过Chef solo和Vagrant安装apt包,ubuntu,vagrant,chef-infra,Ubuntu,Vagrant,Chef Infra,我需要为Ubuntu安装libgmp3 devpackage 流浪者档案: VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "ubuntu/trusty64" config.vm.provision :chef_solo do |chef| chef.cookbooks_path = ["chef/site-cookbooks

我需要为Ubuntu安装
libgmp3 dev
package

流浪者档案:

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "ubuntu/trusty64"
  config.vm.provision :chef_solo do |chef|
    chef.cookbooks_path = ["chef/site-cookbooks", "cookbooks"]
    chef.add_recipe "build-essential"
    chef.add_recipe "apt"
  end
end
厨师长/现场食谱/系统/食谱/default.rb:

package 'libgmp3-dev' do
  action :install
end
但是当我创建虚拟机时,里面没有
libgmp3-dev

更新。找到此解决方案:

config.vm.provision :shell, :inline => 'sudo apt-get install libgmp3-dev -y'
但我认为这不是一个很好的解决方案,基于,看起来你的文件中缺少了一个配方

chef.add_recipe "system"
根据数据,你的档案里好像少了一个食谱

chef.add_recipe "system"
如果您正在使用,则需要包括
system::install_packages
配方,并设置
节点['system']['packages']['install']
属性:

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "ubuntu/trusty64"
  config.vm.provision :chef_solo do |chef|
    chef.cookbooks_path = ["chef/site-cookbooks", "cookbooks"]
    chef.add_recipe "build-essential"
    chef.add_recipe "apt"

    chef.add_recipe "system::install_packages"
    chef.json = {
      "system" => {
        "packages" => {
          "install" => ["libgmp3-dev"]
        }
      }
    }
  end
end
如果您使用自己的
系统
食谱和粘贴的
软件包
说明,我认为应该足够了。

如果您使用,则需要包含
系统::安装软件包
配方并设置
节点['system']['packages']['install']
属性:

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "ubuntu/trusty64"
  config.vm.provision :chef_solo do |chef|
    chef.cookbooks_path = ["chef/site-cookbooks", "cookbooks"]
    chef.add_recipe "build-essential"
    chef.add_recipe "apt"

    chef.add_recipe "system::install_packages"
    chef.json = {
      "system" => {
        "packages" => {
          "install" => ["libgmp3-dev"]
        }
      }
    }
  end
end

如果您使用自己的
系统
烹饪书和粘贴的
包装
说明,我想应该足够了。

在我的Vagrant文件中添加了“系统”配方,但没有帮助。我是否还需要添加类似于以下内容的内容
system::install_packages
?我想知道厨师超市的系统食谱是否有名字冲突的问题。你能试着重命名
网站烹饪书
中的
系统
文件夹,然后更新
厨师。相应地在你的Vagrant文件中添加\u recipe
行吗?在我的Vagrant文件中添加了“system”recipe,但没有帮助。我是否还需要添加类似于以下内容的内容
system::install_packages
?我想知道厨师超市的系统食谱是否有名字冲突的问题。你能试着重命名
站点烹饪书
中的
系统
文件夹,然后更新
厨师。在你的Vagrant文件中相应地添加_recipe
行吗?我绝对同意使用shell provisioner不是安装软件的好方法。现在还不完全清楚您是否有自己的
系统
烹饪书,或者您是否正在使用超市提供的烹饪书,但下面的答案应该对您有所帮助。我完全同意使用shell provisioner不是安装软件的很好解决方案。还不完全清楚你是否有自己的
系统
菜谱,或者你是否在使用超市的菜谱,但是下面的答案应该对你有所帮助。