Puppet을 통해 Ubuntu에 open-vm-tools 설치; 적은 악은 무엇입니까?


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-toolboxGUI 도구 패키지를 권장합니다 .

# 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

권장 패키지는 항상 기본적으로 설치됩니다. "CLI 도구"로 설명 된 패키지를 설치할 때 기본적으로 X 종속성을 설치하는 것은 바람직하지 않습니다.

데비안에 대한 기능 요청은 바로이 같은 이유로 거절했지만, 쿨러 헤드는 우분투에 우선하지 않았다 . 지난 주 안에 이것이 잘못 권고 된 변경이라는 인식이 있었지만, 다음 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,
}

퍼펫 유형 참조의 "패키지"섹션 에서 채택되었습니다 .


추가 조사 후 편집 : 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";';
}

완벽하지는 않지만 거대한 exec 라인보다 더 간결합니다.


그런 운이 없다. x11-common과 모든 친구들이 설치되었습니다. 이 버그 보고서는 apt 제공자와의 동작을 제어하기 위해 추가 할 수있는 인수가 있음을 암시하는 것 같습니다 ...하지만 어떻게 수행 해야하는지에 대한 정보를 찾을 수 없습니다. 이 버그 리포트는 오래되었지만, 적어도 현재는 apt프로 바이더가 실제로 Ubuntu와 Debian의 기본값입니다 . 이 파일의 13 행을 참조하십시오 .
Shane Madden

위의 편집을 참조하십시오.
Mike Renfro 2016 년

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.