APTなしで人形を推奨


8

私は人形を使って、仕事でたくさんのDebianサーバーを管理しています。いくつかのシステムにインストールするパッケージの1つはnmapです。これは、ファイアウォールルールが正しく設定されていることを確認するために使用されます。Debian 7.0では、APT :: Install-Recommendsが有効になっている場合、nmap(下記を参照)とともに大量のがらくたを取得します。

おすすめが有効になっている状態でnmapをインストールするすべてのがらくたは必要ありません。1つの解決策は、apt構成をで更新することAPT::Install-Recommends "0";です。しかし、これをデフォルトにしたくありません。私がお勧めしたい時間の大部分は含まれています。推奨パッケージはほとんど問題なく、私は必要のないものをたくさん入手できていません。しかし、私が望まない/必要としない考えをもたらしているパッケージがいくつかあります。

  package { 'nmap':
    ensure => installed,
    require => Class['apt'],
  }

「apt」パッケージプロバイダーを使用しているときに、推奨がパペットを介してインストールされるかどうかを制御する方法はありますか? aptとaptitudeは完全に互換性がないため、aptitudeプロバイダーをいじりたくありません。

おすすめあり

root@fw-01:~# apt-get install nmap
Reading package lists... Done
Building dependency tree       
Reading state information... Done
... 
The following NEW packages will be installed:
  fonts-droid fonts-liberation ghostscript gnuplot gnuplot-nox groff gsfonts
  imagemagick imagemagick-common libblas3 libblas3gf libcroco3 libcupsimage2
  libdjvulibre-text libdjvulibre21 libexiv2-12 libgfortran3 libgs9
  libgs9-common libijs-0.35 libilmbase6 libjbig2dec0 liblcms1 liblcms2-2
  liblensfun-data litesting firewall blensfun0 liblinear-tools liblinear1 liblqr-1-0
  libmagickcore5 libmagickcore5-extra libmagickwand5 libnetpbm10 libopenexr6
  libpaper-utils libpaper1 librsvg2-2 librsvg2-common libsvm-tools libwmf0.2-7
  netpbm nmap poppler-data psutils ufraw-batch
0 upgraded, 45 newly installed, 0 to remove and 0 not upgraded.
Need to get 32.0 MB of archives.
After this operation, 93.8 MB of additional disk space will be used.
Do you want to continue [Y/n]? 

推奨なし

root@fw-01:~# apt-get --no-install-recommends install nmap
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libblas3 libblas3gf libgfortran3 liblinear1
Suggested packages:
  liblinear-dev
Recommended packages:
  liblinear-tools
The following NEW packages will be installed:
  libblas3 libblas3gf libgfortran3 liblinear1 nmap
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 4,405 kB of archives.
After this operation, 17.4 MB of additional disk space will be used.
Do you want to continue [Y/n]?

そのaptクラスを見る時が来ました。
マイケルハンプトン

関連するDebianバグ:bugs.debian.org/cgi-bin/bugreport.cgi
Zoredache

@ MichaelHampton、aptクラスは、APTが内部リポジトリーを使用するように構成されていることを確認します。Recommendsに関連するものは何も変更されていません。
Zoredache 2013年

回答:


10

これは、Puppetの「パッケージ」タイプの「install_options」設定で可能になりました。http//docs.puppetlabs.com/references/latest/type.html#package-attribute-install_options

例えば:

package { 'nmap':
  ensure          => installed,
  install_options => ['--no-install-recommends'],
}

上記は、「-no-install-recommends」オプションがapt-getに渡されることを保証します。これにより、このインストールにのみ推奨されるパッケージがスキップされます。http: //manpages.ubuntu.com/manpages/precise/man8/apt-get .8.html


3

これまでに次の解決策を見つけましたが、それらは理想的ではありません。

最近追加されたパッチまで待つがリリースされたバージョンになり、アップグレードさます。

  • PRO:これは正しい方法です
  • CON:待つか、ローカルでセットアップにパッチを当てる必要があります。

パッケージの代わりにexecを使用してインストールし、execを使用するだけです。

  • PRO:エラーチェックについて心配しなければ、簡単に実行できます。
  • CON:インストールするのにかなり複雑なコマンドラインが必要で、自動的にアップグレードせず、インストールエラーを適切に処理します。

私のapt構成をグローバルに更新し、不足しているものをすべて検索し、マニフェストを調整して、推奨されることによってのみインストールされるようにしたいパッケージもインストールするように時間を費やします。

  • PRO:私のマニフェストはより具体的であり、システムの状態をより正確に反映しています
  • CON:この新しい現実を反映するようにマニフェスト/構成を修正するには、かなりの時間/労力がかかります。

Puppetを実行する前に、APT_CONFIG環境変数を設定します。

  • PRO:cronで開始されたパペットを使用している場合、設定が簡単
  • PRO:aptを手動で使用した場合の動作は変更されません
  • CON:テスト目的で手動でAPTを実行するときに設定するのを忘れがちです。
  • CON:グローバル構成を更新する場合と同様に、すべてのマニフェストを修正する必要があります。

2
aptプロバイダーを親として使用してカスタムプロバイダーを記述し、そこに必要なフラグを追加してみませんか?それか、すでに適用されている証拠がない限り、puppetmasterがパッチコマンドを実行するためのマニフェストを記述します。
Mike Renfro 2013

@MikeRenfroは問題外ではありませんが、ルビーにはあまり詳しくありません。
Zoredache 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.