Назад | Перейти на главную страницу

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

В идеальном мире настройка марионетки для установки 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 пакет инструментов GUI:

# 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 по умолчанию при установке пакета, который описывается как «Инструменты командной строки».

В запрос функции против 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',
}

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

Похоже на 12.04, apt-get install open-vm-tools больше не устанавливает X.

Вики Ubuntu на инструментах VMware

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

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

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

Адаптировано из Справочник по типу марионетки, раздел «пакет».


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

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";';
}

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