厨师安装依赖关系的本地apt_package

我尝试在服务器上安装我的本地烘焙软件包:

cookbook_file '/var/cache/apt/archives/nfdhcpd_0.20_all.deb' do source 'nfdhcpd_0.20_all.deb' owner 'root' group 'root' mode '0755' action :create end package 'nfdhcpd_0.20_all.deb' do provider Chef::Provider::Package::Dpkg source "/var/cache/apt/archives/nfdhcpd_0.20_all.deb" action :install end 

我需要使用dpkg provider因为apt provider不支持本地程序包( apt package provider cannot handle source attribute. Use dpkg provider instead )。 我有一个错误(错过了deps):

 STDERR: dpkg: dependency problems prevent configuration of nfdhcpd: nfdhcpd depends on python-scapy (>= 2.0.1-1); however: Package python-scapy is not installed. 

我如何告诉厨师安装缺失的依赖关系? (无需手动安装)

dpkg不能安装依赖关系,所以你需要创build一个包含你的包的本地apt库。 https://askubuntu.com/a/176546给出了基本的想法。 您需要将一个Packages文件与.deb一起放入,然后在/etc/apt/sources.list.d文件中引用该目录。

 file '/etc/apt/sources.list.d/local-apt.list' do owner 'root' group 'root' mode '0644' content "deb file:/var/cache/apt/archives/ ./" action :create notifies :run, 'execute[apt-get update]', :immediately end package 'nfdhcpd' 

怎么通过-f作为一个选项?

用选项安装一个软件包

 package 'debian-archive-keyring' do action :install options '--force-yes' end 

apt_package

 apt_package 'name' do default_release String notifies # see description options String package_name String, Array # defaults to 'name' if not specified provider Chef::Provider::Package::Apt source String subscribes # see description timeout String, Integer version String, Array action Symbol # defaults to :install if not specified end 

dpkg_package

 dpkg_package 'name' do notifies # see description options String package_name String, Array # defaults to 'name' if not specified provider Chef::Provider::Package::Dpkg source String subscribes # see description timeout String, Integer version String, Array action Symbol # defaults to :install if not specified end 

选项

Rubytypes:string

传递给命令的一个(或多个)附加选项。