Я использую модуль Apt (https://forge.puppetlabs.com/puppetlabs/apt) и добавили запись для репозитория Debian wheezy backports:
apt::source { 'wheezy-backports':
location => 'http://ftp.de.debian.org/debian',
release => 'wheezy-backports',
repos => 'main',
include_deb => true,
include_src => true,
notify => Exec['apt-get-update'],
}
Я могу успешно устанавливать пакеты, которые доступны в wheezy-backports, но не в репозитории по умолчанию, поэтому я считаю, что сама конфигурация верна. Установка вручную из бэкпортов с помощью apt-get install git -t wheezy-backports
тоже работает.
Но как мне заставить Puppet получить пакет из wheezy-backports вместо репозитория по умолчанию? В частности, я хочу установить git-1.9.1-1, который находится в бэкпорте Wheezy, но
package { "git": ensure => "1:1.9.1-1~bpo70+2", }
терпит неудачу.
package { "git": ensure => "latest", }
установит только последнюю версию из репозитория по умолчанию, но не более новую версию backport.
Посоветуйте, пожалуйста, как заставить Puppet получить определенный пакет из репозитория wheezy-backports.
Из Документация по резервным копиям Debian, вам необходимо вручную указать репозиторий при установке через интерфейс командной строки, поскольку пакеты с обратным переносом закрепляются с более высоким приоритетом, чем пакеты по умолчанию.
Согласно этот ответ ServerFault, вам нужно будет закрепить либо весь репозиторий, либо отдельные пакеты, чтобы использовать backports.
С помощью модуля Puppetlabs apt вы можете сделать это с помощью apt::backports
class, который добавит репозиторий backports и сбросит файл pin:
class { 'apt::backports':
location => 'http://ftp.de.debian.org/debian',
release => 'wheezy-backports',
repos => 'main',
pin => 500,
}
Если вы не хотите закреплять весь репозиторий, вы можете закрепить отдельные пакеты, используя apt::pin
(ниже приведен пример, возможно, вам придется его настроить):
apt::pin { 'backports_git':
packages => 'git',
priority => 500,
release => 'main',
}
Дополнительная документация здесь: https://forge.puppetlabs.com/puppetlabs/apt#pin-a-specific-release