Merge pull request #556 from callahm3/master
[puppet-modules/puppetlabs-apt.git] / README.md
index 6cc1aa436a14dfd10243fe569991b3c78b2ffe6d..4220775b990bea62f602b447ed5695955e4c359a 100644 (file)
--- a/README.md
+++ b/README.md
@@ -30,11 +30,12 @@ Apt (Advanced Package Tool) is a package manager available on Debian, Ubuntu, an
 
 ### What apt affects
 
+* Your system's `preferences.list` file and `preferences.list.d` directory
 * Your system's `sources.list` file and `sources.list.d` directory
 * System repositories
 * Authentication keys
 
-**Note:** Setting the apt module's `purge_sources_list` and `purge_sources_list_d` parameters to 'true' will destroy any existing content that you haven't declared through Puppet. The default for these parameters is 'false'.
+**Note:** This module offers `purge` parameters which, if set to 'true', **destroy** any configuration on the node's `sources.list(.d)` and `preferences.list(.d)` that you haven't declared through Puppet. The default for these parameters is 'false'.
 
 ### Beginning with apt
 
@@ -62,17 +63,6 @@ apt::key { 'puppetlabs':
 }
 ~~~
 
-You can make Apt load your key before others by adjusting the `priority` parameter (the default priority is 50).
-
-~~~puppet
-apt::key { 'puppetlabs':
-  id       => '47B320EB4C7C375AA9DAE1A01054B7A24BD6EC30',
-  server   => 'pgp.mit.edu',
-  options  => 'http-proxy="http://proxyuser:proxypass@example.org:3128"',
-  priority => '50',
-}
-~~~
-
 ### Prioritize backports
 
 ~~~puppet
@@ -239,6 +229,8 @@ Main class, includes all other classes.
 
   * 'https': Specifies whether to enable https proxies. Valid options: 'true' and 'false'. Default: 'false'.
 
+  * 'ensure': Optional parameter. Valid options: 'file', 'present', and 'absent'. Default: 'undef'. Prefer 'file' over 'present'.
+
 * `purge`: Specifies whether to purge any existing settings that aren't managed by Puppet. Valid options: a hash made up from the following keys:
 
   * 'sources.list': Specifies whether to purge any unmanaged entries from `sources.list`. Valid options: 'true' and 'false'. Default: 'false'.
@@ -274,8 +266,8 @@ Manages backports.
 
 * `location`: Specifies an Apt repository containing the backports to manage. Valid options: a string containing a URL. Defaults:
 
-  * Debian (squeeze): 'http://backports.debian.org/debian-backports'
-  * Debian (other): 'http://ftp.debian.org/debian/'
+  * Debian (squeeze): 'http://httpredir.debian.org/debian-backports'
+  * Debian (other): 'http://httpredir.debian.org/debian'
   * Ubuntu: 'http://archive.ubuntu.com/ubuntu'
 
 * `pin`: *Optional.* Specifies a pin priority for the backports. Valid options: a number or string to be passed to the `id` parameter of the `apt::pin` define, or a hash of `parameter => value` pairs to be passed to `apt::pin`'s corresponding parameters. Default: '200'.
@@ -466,6 +458,14 @@ Manages the GPG keys that Apt uses to authenticate packages.
 
 This module is tested and officially supported on Debian 6 and 7 and Ubuntu 10.04, 12.04, and 14.04. Testing on other platforms has been light and cannot be guaranteed.
 
+### Adding new sources or PPAs
+
+If you are adding a new source or PPA and trying to install packages from the new source or PPA on the same Puppet run, your `package` resource should depend on `Class['apt::update']`, in addition to depending on the `Apt::Source` or the `Apt::Ppa`. You can also add [collectors](https://docs.puppetlabs.com/puppet/latest/reference/lang_collectors.html) to ensure that all packages happen after `apt::update`, but this can lead to dependency cycles and has implications for [virtual resources](https://docs.puppetlabs.com/puppet/latest/reference/lang_collectors.html#behavior).
+
+~~~puppet
+Class['apt::update'] -> Package<| |>
+~~~
+
 ## Development
 Puppet Labs modules on the Puppet Forge are open projects, and community contributions are essential for keeping them great. We can't access the huge number of platforms and myriad hardware, software, and deployment configurations that Puppet is intended to serve. We want to keep it as easy as possible to contribute changes so that our modules work in your environment. There are a few guidelines that we need contributors to follow so that we can have a chance of keeping on top of things.