diff --git a/apt/manifests/init.pp b/apt/manifests/init.pp index d510f3b..f9baffb 100644 --- a/apt/manifests/init.pp +++ b/apt/manifests/init.pp @@ -1,3 +1,14 @@ +class apt { + + file { "/var/cache/apt/local-archives": + ensure => directory, + mode => 0755, + owner => root, + group => root, + } + +} + # Install apt-cacher server # @@ -67,3 +78,46 @@ class apt::mirror { } } + + +# Install .deb package. +# +# === Parameters +# +# $name: +# Package name. +# $ensure: +# Ensure package is absent or installed. +# $source: +# Source URL to .deb file. +# +# === Sample usage +# +# apt::package { "python-igraph": +# ensure => present, +# source => "http://cneurocvs.rmki.kfki.hu/packages/binary/python-igraph_0.5.2_i386.deb", +# } +# +define apt::package($ensure, $source) { + + include apt + + $filename = regsubst($source, '.*/([^/]+)$', '\1') + + custom::file { "/var/cache/apt/local-archives/${filename}": + ensure => $ensure, + source => $source, + mode => 0644, + owner => root, + group => root, + require => File["/var/cache/apt/local-archives"], + } + + package { "${name}": + ensure => $ensure, + source => "/var/cache/apt/local-archives/${filename}", + provider => dpkg, + require => Custom::File["/var/cache/apt/local-archives/${filename}"], + } + +}