diff options
Diffstat (limited to 'lib/puppet')
-rwxr-xr-x | lib/puppet/provider/package/apt.rb | 2 | ||||
-rwxr-xr-x | lib/puppet/provider/package/dpkg.rb | 8 |
2 files changed, 8 insertions, 2 deletions
diff --git a/lib/puppet/provider/package/apt.rb b/lib/puppet/provider/package/apt.rb index d39ce01f4..b48d71625 100755 --- a/lib/puppet/provider/package/apt.rb +++ b/lib/puppet/provider/package/apt.rb @@ -111,6 +111,8 @@ Puppet::Type.type(:package).provide :apt, :parent => :dpkg, :source => :dpkg do def purge aptget '-y', '-q', 'remove', '--purge', @resource[:name] + # workaround a "bug" in apt, that already removed packages are not purged + super end end diff --git a/lib/puppet/provider/package/dpkg.rb b/lib/puppet/provider/package/dpkg.rb index 015edb84b..a739f38e2 100755 --- a/lib/puppet/provider/package/dpkg.rb +++ b/lib/puppet/provider/package/dpkg.rb @@ -32,7 +32,9 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package hash[:provider] = self.name - unless hash[:status] == "installed" + if hash[:status] == 'not-installed' + hash[:ensure] = :purged + elsif hash[:status] != "installed" hash[:ensure] = :absent end @@ -102,7 +104,9 @@ Puppet::Type.type(:package).provide :dpkg, :parent => Puppet::Provider::Package end # DPKG can discuss packages that are no longer installed, so allow that. - if hash[:status] != "installed" + if hash[:status] == "not-installed" + hash[:ensure] = :purged + elsif hash[:status] != "installed" hash[:ensure] = :absent end |