Module: Apt

Defined in:
lib/vmbuilder_plugins/apt.rb

Overview

Purpose

Apt is a Capistrano plugin module providing a set of methods that invoke the apt package manager (as used in Debian and Ubuntu)

Installs within Capistrano as the plugin apt.

Usage

require 'vmbuilder_plugins/apt'

Prefix all calls to the library with apt.

Constant Summary collapse

APT_GET =

Default apt-get command - reduces any interactivity to the minimum. APT_GET=“DEBCONF_TERSE=‘yes’ DEBIAN_PRIORITY=‘critical’ DEBIAN_FRONTEND=noninteractive apt-get”

"yum -y"

Instance Method Summary collapse

Instance Method Details

#autoclean(options = {}) ⇒ Object

Run an apt autoclean



47
48
49
# File 'lib/vmbuilder_plugins/apt.rb', line 47

def autoclean(options={})
  send(run_method, %{sh -c "#{APT_GET} -qy autoclean"}, options)
end

#clean(options = {}) ⇒ Object

Run an apt clean



42
43
44
# File 'lib/vmbuilder_plugins/apt.rb', line 42

def clean(options={})
  send(run_method, %{sh -c "#{APT_GET} -qy clean"}, options)
end

#clear_cache(options = {}) ⇒ Object

Clear the source list and package cache



76
77
78
79
80
# File 'lib/vmbuilder_plugins/apt.rb', line 76

def clear_cache(options={})
  clean
  cmd="rm -f /var/cache/apt/*.bin /var/lib/apt/lists/*_* /var/lib/apt/lists/partial/*"
  send(run_method, cmd, options)
end

#dist_upgrade(options = {}) ⇒ Object

Run an apt distribution upgrade



52
53
54
# File 'lib/vmbuilder_plugins/apt.rb', line 52

def dist_upgrade(options={})
  send(run_method, %{sh -c "#{APT_GET} -qy dist-upgrade"}, options)
end

#install(packages, version, options = {}) ⇒ Object

Run the apt install program across the package list in ‘packages’. Select those packages referenced by :base and the version of the distribution you want to use.



32
33
34
35
36
37
38
39
# File 'lib/vmbuilder_plugins/apt.rb', line 32

def install(packages, version, options={})
  #special_options="--allow-unauthenticated" if version != :stable
  #sh -c "#{APT_GET} -qyu --force-yes #{special_options.to_s} install #{package_list(packages, version)}"
  special_options = options[:repositories].collect { |repository| " --enablerepo=#{repository}"} if (options && options[:repositories].is_a?(Array))
  send(run_method, %{
    sh -c "#{APT_GET} #{special_options.to_s} install #{package_list(packages, version)}"
  }, options)
end

#rpm_install(packages, options = {}) ⇒ Object

RPM package install via alien



68
69
70
71
72
73
# File 'lib/vmbuilder_plugins/apt.rb', line 68

def rpm_install(packages, options={})
  install({:base => %w(wget alien) }, :base)
  send(run_method, "wget -Ncq #{packages.join(' ')}", options)
  files=packages.collect { |package| File.basename(package) }
  send(run_method, "alien -i #{files.join(' ')}", options)
end

#update(options = {}) ⇒ Object

Run an apt update.



63
64
65
# File 'lib/vmbuilder_plugins/apt.rb', line 63

def update(options={})
  send(run_method, %{sh -c "#{APT_GET} -qy update"}, options)
end

#upgrade(options = {}) ⇒ Object

Run an apt upgrade. Use dist_upgrade instead if you want to upgrade the critical base packages.



58
59
60
# File 'lib/vmbuilder_plugins/apt.rb', line 58

def upgrade(options={})
  send(run_method, %{sh -c "#{APT_GET} -qy upgrade"}, options)
end