Puppet: как установить пакет git из Debian wheezy-backports?

Puppet: как установить пакет git из Debian wheezy-backports?

Я использую модуль 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, но не в репозитории по умолчанию, поэтому я думаю, что сама конфигурация верна. Ручная установка из backports с помощью apt-get install git -t wheezy-backportsтоже работает.

Но как заставить Puppet извлечь пакет из wheezy-backports вместо репозитория по умолчанию? В частности, я хочу установить git-1.9.1-1, который находится в wheezy backports, но

package { "git": ensure => "1:1.9.1-1~bpo70+2", }

терпит неудачу.

package { "git": ensure => "latest", }

установит только последнюю версию из репозитория по умолчанию, но не более новую версию backport.

Пожалуйста, посоветуйте, как заставить Puppet извлечь определенный пакет из репозитория wheezy-backports.

решение1

ИзДокументация по обратным портам Debian, вам необходимо вручную указать репозиторий при установке через CLI, поскольку портированные пакеты закрепляются с более высоким приоритетом, чем пакеты по умолчанию.

Согласноэтот ответ ServerFault, вам нужно будет закрепить либо весь репозиторий, либо отдельные пакеты для использования бэкпортов.

С помощью модуля Puppetlabs apt вы можете сделать это, используя класс apt::backports, который добавит репозиторий 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

Связанный контент