Я использую официальный модуль Puppet apt для добавления эта панель запуска Java и установить Oracle Java 8.
apt::ppa{ 'ppa:webupd8team/java': }
package {
"oracle-java8-installer":
ensure => 'installed',
}
Когда модуль apt добавляет панель запуска, он уведомляет другой манифест о запуске «apt-get update».
APT / манифесты / ppa.pp
exec { "add-apt-repository-${name}":
environment => $_proxy_env,
command => "/usr/bin/add-apt-repository ${options} ${name}",
unless => "/usr/bin/test -s ${::apt::sources_list_d}/${sources_list_d_filename}",
user => 'root',
logoutput => 'on_failure',
notify => Exec['apt::update::apt_update'],
require => $_require,
}
Проблема в том, что я не могу убедиться, что исходное обновление запущено до начала установки.
Использование 'require' или 'before' обновление запускается после установка (добавить источник -> установить Java -> обновление apt-get), subscribe возвращает цикл зависимостей и не использует никаких связей, которые он устанавливает перед обновлением моих источников.
Какое решение?
Используя код Фрэнка:
apt::ppa{ 'ppa:webupd8team/java': }
package {
"oracle-java8-installer":
ensure => 'installed',
require => Apt::Ppa['ppa:webupd8team/java'],
}
Я получаю это сообщение об ошибке:
==> xxx: Примечание: / Stage [main] / Main / Node [xxx] / Apt :: Ppa [ppa: webupd8team / java] / Exec [add-apt-repository-ppa: webupd8team / java] / возвращает: выполнено успешно
==> xxx: Ошибка: выполнение '/ usr / bin / apt-get -q -y -o DPkg :: Options :: = - force-confold install oracle-java8-installer' вернуло 100: Чтение списков пакетов. ..
==> xxx: Построение дерева зависимостей ...
==> xxx: чтение информации о состоянии ...
==> xxx: E: не удалось найти пакет oracle-java8-installer
==> xxx: Ошибка: / Этап [main] / Main / Node [xxx] / Package [oracle-java8-installer] / sure: изменить с очищенного на настоящее не удалось: выполнение '/ usr / bin / apt-get - q -y -o DPkg :: Options :: = - force-confold install oracle-java8-installer 'вернул 100: Чтение списков пакетов ...
==> xxx: Построение дерева зависимостей ...
==> xxx: чтение информации о состоянии ...
==> xxx: E: не удалось найти пакет oracle-java8-installer
==> xxx: Примечание: / Stage [main] / Apt :: Update / Exec [apt_update]: Пакет зависимостей [oracle-java8-installer] имеет сбои: true
==> xxx: Предупреждение: / Stage [main] / Apt :: Update / Exec [apt_update]: пропуск из-за сбойных зависимостей
==> xxx: Примечание: / Stage [main] / Apt :: Update / Exec [apt_update]: инициировано «обновление» из 1 события
Используя это:
package {
"oracle-java8-installer":
ensure => 'installed',
require => Exec['apt::update::apt_update'],
}
Я получаю такую ошибку:
Error: Failed to apply catalog: Could not find dependency Exec[apt::update::apt_update] for Package[oracle-java8-installer]
Ваши выводы сбивают с толку. require
действительно должен доставить вас туда.
package {
"oracle-java8-installer":
ensure => 'installed',
require => Apt::Ppa['ppa:webupd8team/java'],
}