NAME
Doit::Deb - commands for dealing with the Debian package system
SYNOPSIS
use Doit;
my $doit = Doit->init;
$doit->add_component('deb');
$doit->deb_install_packages(qw(zsh wget aptitude));
my @missing_packages = $doit->deb_missing_packages(qw(zsh wget aptitude));
$doit->deb_install_key(
url => 'http://deb.example.org/key/deb.example.org.key',
key => '0123456789ABCDEF0123456789ABCDEF01234567',
);
DESCRIPTION
Doit::Deb is a Doit component providing commands for dealing with debian packages. It has to be added to a script using Doit's add_component:
$doit->add_component('deb');
DOIT COMMANDS
The following commands are added to the Doit runner object:
deb_install_packages
$doit->deb_install_packages(@packages);
Make sure that the listed debian packages are installed (currently using apt-get(8)). Return a list of the packages which were actually installed during the execution of this command (or the number of packages in scalar context).
deb_missing_packages
my @missing_packages = $doit->deb_missing_packages(@packages);
Return the packages out of @packages which are not yet installed. This is an "informational" command and runs even in dry-run mode.
deb_install_key
$doit->deb_install_key(
url => $url,
);
$doit->deb_install_key(
keyserver => $keyserver,
key => $key,
);
Make sure that the given key is installed in the apt keyring. The key can be expressed either using an $url (in which case curl(1) is used to download the key), or using a $keyserver and $key speciication (in which case apt-key(8) is used to download and install the key).
Return 1 if the key was actually installed, otherwise 0.
NOTES
Add to sources.list
To add a Debian repository to /etc/apt/sources.list.d the following approach may be used:
use Doit::Util qw(get_os_release);
my $codename = get_os_release()->{VERSION_CODENAME}; # for older Linux distributions (for example debian:jessie) use instead the chomped output of `lsb_release -cs`
if ($doit->write_binary("/etc/apt/sources.list.d", "deb http://debs.example.org $codename main\n")) {
$doit->system(qw(apt-get update));
}
AUTHOR
Slaven Rezic <srezic@cpan.org>
COPYRIGHT
Copyright (c) 2017 Slaven Rezic. All rights reserved. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.