Cài đặt open-vm-tools trong Ubuntu thông qua Puppet; cái ác nhỏ hơn là gì?


9

Trong một thế giới lý tưởng, việc cấu hình con rối để cài đặt open-vm-toolsnên đơn giản như sau:

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

Nhưng, điều đó mở ra một lon xấu xí của creep; Nó cài đặt X, rõ ràng không thuộc về máy chủ. Kể từ Ubuntu 10.04, cả hai gói này đều đề xuất open-vm-toolboxgói công cụ 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

Các gói khuyến nghị luôn được cài đặt theo mặc định. Rõ ràng không muốn cài đặt các phụ thuộc X theo mặc định khi cài đặt gói được mô tả là "Công cụ CLI".

Các yêu cầu tính năng chống Debian đã ngay lập tức từ chối vì lý do này, nhưng người đứng đầu mát không áp dụng trong Ubuntu . Có vẻ như trong tuần trước, có một số sự công nhận rằng đây là một sự thay đổi không được khuyến khích , nhưng điều đó không giúp ích gì cho đến khi phiên bản LTS tiếp theo diễn ra.

Các hành vi cài đặt các gói khuyến cáo có thể dễ dàng vô hiệu hóa đủ trên dòng lệnh với các --no-install-recommendstùy chọn, nhưng thông qua con rối không có hỗ trợ để thực hiện điều này, và một rối mớ hỗn độn của yêu cầu hỗ trợ chưa đi xa trong vòng 3 năm.

Tùy chọn khác là chỉ vô hiệu hóa các gói được đề xuất trên toàn bộ hệ thống thông qua apt.conf, đây là một thay đổi lớn đối với hành vi gói với các tác động vươn xa hơn tôi muốn.

Tôi đã cam chịu làm điều đó một cách lười biếng;

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',
}

Nhưng điều này rõ ràng là "làm sai" . Tôi có đang thiếu thứ gì đó sẽ khiến tất cả mọi thứ hoạt động theo đúng nghĩa của nó hay đây là cách giải quyết tốt nhất cho vấn đề này?

Câu trả lời:


3

Lỗi 1766 chỉ ra rằng nhà cung cấp aptitude cài đặt các gói được đề xuất, trong khi nhà cung cấp apt thì không.

Nếu điều đó đúng (tôi đã không tự xác minh), thì những điều sau đây có thể hoạt động sạch sẽ hơn:

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

Chuyển thể từ Tài liệu tham khảo kiểu rối, phần "gói" .


Chỉnh sửa sau khi điều tra thêm: vì nhà cung cấp apt là mặc định trên Ubuntu và Debian, hãy sử dụng nhà cung cấp aptitude cho các gói này và thêm một gói phù hợp ~/.aptitude/configcho 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";';
}

Không hoàn hảo, nhưng ngắn gọn hơn một dòng exec khổng lồ.


Không có may mắn như vậy; x11-common và tất cả bạn bè của nó đã được cài đặt. Báo cáo lỗi đó dường như ngụ ý rằng có một đối số có thể được thêm vào để kiểm soát hành vi với nhà cung cấp apt ... nhưng tôi không thể tìm thấy bất kỳ thông tin nào về cách thực hiện. Báo cáo lỗi đó có thể đã lỗi thời, nhưng, có vẻ như ít nhất hiện tại, aptnhà cung cấp thực sự là mặc định cho Ubuntu và Debian, xem dòng 13 của tệp này .
Shane Madden

Xem chỉnh sửa ở trên.
Mike Renfro

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.