Я пытаюсь установить локально запеченный пакет на сервере:
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
). У меня ошибка (отсутствуют данные):
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
не может устанавливать зависимости, поэтому вам необходимо создать локальный репозиторий 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 '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 '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
параметры
Тип Рубина: Строка
Одна (или несколько) дополнительных опций, передаваемых команде.