Menginstal open-vm-tools di Ubuntu melalui Puppet; apa kejahatan yang lebih kecil?

9

Di dunia yang ideal, mengkonfigurasi boneka untuk menginstalnya open-vm-toolsharus sesederhana ini:

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

Tapi, itu membuka kaleng jelek ketergantungan merayap; itu menginstal X, yang jelas bukan milik server. Pada Ubuntu 10,04, kedua paket ini akhirnya merekomendasikan open-vm-toolboxpaket alat 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

Paket yang disarankan selalu diinstal secara default. Jelas tidak diinginkan untuk menginstal dependensi X secara default ketika menginstal paket yang digambarkan sebagai "CLI Tools".

The permintaan fitur terhadap Debian segera ditolak untuk alasan ini, tapi kepala dingin tidak berlaku di Ubuntu . Tampaknya dalam minggu terakhir, ada beberapa pengakuan bahwa ini adalah perubahan yang keliru , tapi itu tidak membantu sampai rilis LTS berikutnya bergulir.

Perilaku untuk menginstal paket direkomendasikan mudah cukup dinonaktifkan pada baris perintah dengan --no-install-recommendspilihan, tetapi melalui boneka tidak ada dukungan untuk melakukan hal ini, dan kusut berantakan dari tiket meminta dukungan yang belum pergi jauh dalam 3 tahun.

Opsi lainnya adalah menonaktifkan saja paket yang disarankan di seluruh sistem melalui apt.conf, yang merupakan perubahan besar pada perilaku paket dengan dampak yang menjangkau lebih jauh dari yang saya inginkan.

Saya sudah pasrah melakukannya dengan cara malas;

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

Tapi ini jelas "salah melakukannya" . Apakah saya melewatkan sesuatu yang akan membuat semua ini bekerja seperti yang seharusnya, atau apakah ini solusi peretasan terbaik untuk masalah ini?

Shane Madden
sumber

Jawaban:

3

Bug 1766 menunjukkan bahwa penyedia aptitude menginstal paket yang disarankan, sedangkan penyedia apt tidak.

Jika itu benar (saya belum memverifikasi sendiri), maka yang berikut ini mungkin berfungsi lebih baik:

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

Diadaptasi dari Referensi Jenis Wayang, bagian "paket" .


Edit setelah penyelidikan lebih lanjut: karena penyedia apt adalah default di Ubuntu dan Debian, gunakan penyedia aptitude untuk paket ini, dan tambahkan yang cocok ~/.aptitude/configuntuk 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";';
}

Tidak sempurna, tetapi lebih ringkas dari garis eksekutif raksasa.

Mike Renfro
sumber
Tidak beruntung; x11-common dan semua teman-temannya akhirnya diinstal. Laporan bug itu tampaknya menyiratkan bahwa ada argumen yang dapat ditambahkan untuk mengontrol perilaku dengan penyedia apt ... tapi saya tidak dapat menemukan info tentang bagaimana hal itu seharusnya dilakukan. Laporan bug itu mungkin sudah ketinggalan zaman, tetapi, sepertinya setidaknya saat ini, aptpenyedia sebenarnya adalah default untuk Ubuntu dan Debian, lihat baris 13 dari file ini .
Shane Madden
Lihat edit di atas.
Mike Renfro