fabtools.require.deb

Debian packages

This module provides high-level tools for managing Debian/Ubuntu packages and repositories.

See also

fabtools.deb

Keys

fabtools.require.deb.key(keyid, filename=None, url=None, keyserver='subkeys.pgp.net', update=False)[source]

Require a PGP key for APT.

from fabtools import require

# Varnish signing key from URL
require.deb.key('C4DEFFEB', url='http://repo.varnish-cache.org/debian/GPG-key.txt')

# Nginx signing key from default key server (subkeys.pgp.net)
require.deb.key('7BD9BF62')

# From custom key server
require.deb.key('7BD9BF62', keyserver='keyserver.ubuntu.com')

# From file
require.deb.key('7BD9BF62', filename='nginx.asc')

Sources

fabtools.require.deb.source(name, uri, distribution, *components)[source]

Require a package source.

from fabtools import require

# Official MongoDB packages
require.deb.source('mongodb', 'http://downloads-distro.mongodb.org/repo/ubuntu-upstart', 'dist', '10gen')
fabtools.require.deb.ppa(name, auto_accept=True, keyserver=None)[source]

Require a PPA package source.

Example:

from fabtools import require

# Node.js packages by Chris Lea
require.deb.ppa('ppa:chris-lea/node.js', keyserver='my.keyserver.com')

Index

fabtools.require.deb.uptodate_index(quiet=True, max_age=86400)[source]

Require an up-to-date package index.

This will update the package index (using apt-get update) if the last update occured more than max_age ago.

max_age can be specified either as an integer (a value in seconds), or as a dictionary whose keys are units (seconds, minutes, hours, days, weeks, months) and values are integers. The default value is 1 hour.

Examples:

from fabtools import require

# Update index if last time was more than 1 day ago
require.deb.uptodate_index(max_age={'day': 1})

# Update index if last time was more than 1 hour and 30 minutes ago
require.deb.uptodate_index(max_age={'hour': 1, 'minutes': 30})

Packages

fabtools.require.deb.package(pkg_name, update=False, version=None)[source]

Require a deb package to be installed.

Example:

from fabtools import require

# Require a package
require.deb.package('foo')

# Require a specific version
require.deb.package('firefox', version='11.0+build1-0ubuntu4')
fabtools.require.deb.packages(pkg_list, update=False)[source]

Require several deb packages to be installed.

Example:

from fabtools import require

require.deb.packages([
    'foo',
    'bar',
    'baz',
])
fabtools.require.deb.nopackage(pkg_name)[source]

Require a deb package to be uninstalled.

Example:

from fabtools import require

require.deb.nopackage('apache2')
fabtools.require.deb.nopackages(pkg_list)[source]

Require several deb packages to be uninstalled.

Example:

from fabtools import require

require.deb.nopackages([
    'perl',
    'php5',
    'ruby',
])