How to update a package using puppet and a .deb file

28,671

I also posted this question on the puppet users group and this was a response that I got back.

If you add ensure latest it will check the source file against the currently installed package and install the new one if it is latest. I'm still not sure how you would roll back to an older version, but this seems to solve my problem for now.

package { "puppet-dashboard":
 provider => dpkg,
 ensure   => latest,
 source   => "/tmp/puppet-dashboard_1.0.4rc2-1_all.deb"
}

Here is a link to the puppet user group post... http://groups.google.com/group/puppet-users/browse_thread/thread/53f5e7119012fb3e/59e8596701fcaf3f

Share:
28,671

Related videos on Youtube

delux247
Author by

delux247

It's delux son.... delux!

Updated on September 17, 2022

Comments

  • delux247
    delux247 over 1 year

    I am trying to figure out the proper way to update/upgrade a deb package using puppet from a local source deb file. My current config looks like this...

    class adobe-air-2-0-4 {
    
      file { "/opt/air-debs":
        ensure => directory
      }
    
      file { "/opt/air-debs/adobeair-2.0.4.deb":
        owner   => root,
        group   => root,
        mode    => 644,
        ensure  => present,
        source  => "puppet://puppet/adobe-air-2-0-4/adobeair-2.0.4.deb"
      }
    
      package { "adobeair":
        provider => dpkg,
        ensure => installed,
        source => "/opt/air-debs/adobeair-2.0.4.deb"
      }
    
    }
    

    I first copy the deb file down to the client machine and then use 'package' with the provider set to 'dpkg'. This works and I get the correct version installed.

    My question is what is the proper way to update this package in the future. Can I simply change out the source file and puppet will know that it's a different version and update this package? How does puppet determine what version of a package it has installed versus the version of the source deb file?

    I am pretty new to puppet, so if you have an suggestions for improvements to my existing config they are very much appreciated.

  • marc_s
    marc_s about 13 years
    Not tested, but if using apt as the provider. you can change latest to a string with the version number in - eg: ensure => '1.0.4rc2-1_all'
  • Aktau
    Aktau about 11 years
    Well, @benlumley, apt-get is versionable and dpkg (on which apt-get is based) is not. So it's kind of difficult to mix the two when you want to version like that. That's why in these cases it could be a good idea to setup a mini-repository and have apt-get manage it (which is the default provider on debian systems)