Установка open-vm-tools в Ubuntu через Puppet; что меньшее зло?

9

В идеальном мире настройка кукол для установки open-vm-toolsдолжна быть такой простой:

class vm-tools {
    package { 'open-vm-tools':
        ensure => installed
    }
    package { 'open-vm-dkms':
        ensure => installed
    }
}

Но, это открывает уродливую банку ползучести зависимости; он устанавливает X, который явно не принадлежит серверам. Начиная с Ubuntu 10.04, оба этих пакета в конечном итоге рекомендуют open-vm-toolboxпакет инструментов с графическим интерфейсом:

# apt-cache depends open-vm-dkms
open-vm-dkms
  Depends: dkms
  Depends: make
  Suggests: open-vm-toolbox
  Recommends: open-vm-tools

# apt-cache depends open-vm-tools
open-vm-tools
  Depends: libc6
  Depends: libfuse2
  Depends: libgcc1
  Depends: libglib2.0-0
  Depends: libicu44
  Depends: libstdc++6
  Recommends: open-vm-source
  Recommends: open-vm-toolbox
  Recommends: ethtool
  Recommends: zerofree

Рекомендуемые пакеты всегда устанавливаются по умолчанию. Очевидно, что нежелательно устанавливать X-зависимости по умолчанию при установке пакета, который описывается как «Инструменты CLI».

По этой причине запрос Debian против Debian был немедленно отклонен, но в Ubuntu не преобладали более холодные головы . Похоже, что на прошлой неделе было определенное признание того, что это было необдуманное изменение , но это не поможет, пока не выйдет следующий релиз LTS.

Поведение установить рекомендуемые пакеты, достаточно легко отключить в командной строке с --no-install-recommendsпараметром, но через марионетку нет никакой поддержки для этого, и запутанный беспорядок из билетов , запрашивающих , что поддержка не ушли далеко в 3 -х лет.

Другой вариант - просто отключить рекомендуемые пакеты во всей системе через систему apt.conf, что является серьезным изменением в поведении пакетов с последствиями, достигающими большего, чем мне бы хотелось.

Я смирился с тем, чтобы делать это ленивым образом;

exec { 'open-vm-tools install':
    command => '/usr/bin/apt-get install -y --no-install-recommends open-vm-dkms open-vm-tools',
    creates => '/usr/lib/open-vm-tools',
}

Но это явно "делает это неправильно" . Я что-то упустил, что заставило бы все это работать так, как должно, или это лучший хакерский обходной путь для этой проблемы?

Шейн Мэдден
источник

Ответы:

3

Ошибка 1766 показала, что поставщик aptitude устанавливает рекомендуемые пакеты, а поставщик apt - нет.

Если это правильно (я сам не проверял), то следующее может работать более чисто:

package { [ "open-vm-tools", "open-vm-dkms" ]:
  ensure   => installed,
  provider => apt,
}

Адаптировано из Puppet Type Reference, раздел "пакет" .


Отредактируйте после дальнейшего изучения: поскольку провайдер apt по умолчанию используется в Ubuntu и Debian, используйте провайдер aptitude для этих пакетов и добавьте подходящий ~/.aptitude/configдля root.

package { [ "open-vm-tools", "open-vm-dkms" ]:
  ensure   => installed,
  provider => aptitude,
  require  => File["/root/.aptitude/config"];
}
file { "/root/.aptitude/config":
  ensure  => present,
  content => 'APT::Install-Recommends "0";';
}

Не идеально, но более лаконично, чем гигантская линия exec.

Майк Ренфро
источник
Нет такой удачи; x11-common и все его друзья в конечном итоге установлены. Этот отчет об ошибке, похоже, подразумевает наличие аргумента, который можно добавить для управления поведением провайдера apt ... но я не могу найти никакой информации о том, как это должно быть сделано. Этот отчет об ошибке может быть устаревшим, но, похоже, по крайней мере в настоящее время, aptпровайдер на самом деле является Ubuntu и Debian по умолчанию, см. Строку 13 этого файла .
Шейн Мэдден,
Смотрите редактирование выше.
Майк Ренфро