没有APT推荐与p


8

我使用puppet管理一堆Debian服务器,其中包括安装软件包。我在多个系统上安装的一个软件包是nmap,用于验证防火墙规则是否正确设置。在Debian 7.0上,如果启用了APT :: Install-Recommends,那么您会得到一堆废话以及nmap(请参见下文)。

我不希望安装所有包含建议启用nmap的废话。一种解决方案是使用来更新我的apt配置APT::Install-Recommends "0";。但我不想将其设置为默认值。我想推荐的大多数时间都包括在内。推荐的软件包大部分都很好,而且我没有得到很多我不需要的东西。但是有一些软件包带来了我不想要/不需要的东西。

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

使用“ apt”软件包提供程序时,是否有任何方法可以控制是否通过p安装了推荐内容? 我不想弄混aptitude提供商,因为apt和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课了。
迈克尔·汉普顿


@ MichaelHampton,apt类只是确保将APT配置为使用我的内部存储库。它没有改变与建议有关的任何内容。
Zoredache

Answers:


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:这是正确的方法
  • 缺点:我必须等待,或者在本地修补我的设置。

只需使用exec而不是软件包进行安装,然后使用exec。

  • PRO:如果您不担心错误检查,则操作简单。
  • 缺点:安装需要相当复杂的命令行,而不是自动升级,并且可以正常处理安装错误。

全局更新我的apt配置,并花时间查找所有缺少的内容并调整清单,以安装仅希望通过建议安装的软件包。

  • PRO:我的清单更具体,更准确地反映了系统的状态
  • 缺点:修复清单/配置以反映这一新现实将花费大量的时间/精力。

在运行人偶之前,请设置APT_CONFIG环境变量。

  • PRO:易于设置,如果您使用的是Cron发起的人偶
  • PRO:不会更改任何手动使用apt的行为
  • 缺点:手动运行APT以进行测试时,很容易忘记设置它。
  • 缺点:您必须修复所有清单,就像更新全局配置一样。

2
如何使用apt提供者作为父代编写自定义提供者,并在其中添加所需标志?要么这样做,要么编写一个清单让puppetmaster执行patch命令,除非有证据表明它已被应用。
Mike Renfro

@MikeRenfro并不是不可能,但是我对红宝石不是特别熟悉。
Zoredache 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.