diff --git a/lib/puppet/provider/package/dpkg.rb b/lib/puppet/provider/package/dpkg.rb index 017e351bb8f..50ccf55f89f 100644 --- a/lib/puppet/provider/package/dpkg.rb +++ b/lib/puppet/provider/package/dpkg.rb @@ -7,7 +7,7 @@ and not `apt`, you must specify the source of any packages you want to manage." - has_feature :holdable, :virtual_packages + has_feature :holdable, :virtual_packages, :install_options, :uninstall_options commands :dpkg => "/usr/bin/dpkg" commands :dpkg_deb => "/usr/bin/dpkg-deb" commands :dpkgquery => "/usr/bin/dpkg-query" @@ -94,6 +94,10 @@ def install args = [] + if @resource[:install_options] + args += @resource[:install_options] + end + if @resource[:configfiles] == :keep args << '--force-confold' else @@ -168,7 +172,11 @@ def query end def uninstall - dpkg "-r", @resource[:name] + args = ["-r"] + if @resource[:uninstall_options] + args += @resource[:uninstall_options] + end + dpkg *args, @resource[:name] end def purge