Skip to content
locate Perl Modules in Debian repositories
Perl Perl6
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
cache/apt/apt-pm
examples
lib/Debian/Apt
patches
script
sharedstate/dh-make-pm
t
.gitignore
Build.PL
Changes
MANIFEST
MANIFEST.SKIP
README

README

NAME
    Debian::Apt::PM - locate Perl Modules in Debian repositories

NOTE
    Needs following extra Debian packages `libdpkg-perl' and
    `libapt-pkg-perl'.

SYNOPSIS
    command line:

            apt-pm update
            apt-pm find Moose
            dpkg-scanpmpackages /path/to/debian/repository
        
            # print out all dependencies of an unpacked distribution that are packaged for Debian
            perl -MDebian::Apt::PM -MModule::Depends -le \
                    '$apm=Debian::Apt::PM->new();$md=Module::Depends->new->dist_dir(".")->find_modules; %r=(%{$md->requires},%{$md->build_requires}); while (($m, $v) = each %r) { $f=$apm->find($m, $v); print $f->{"min"}->{"package"} if $f->{"min"}  }' \
                    | sort \
                    | uniq \
                    | xargs echo apt-get install
            # print out all dependencies of an unpacked distribution that are not packaged for Debian
            perl -MDebian::Apt::PM -MModule::Depends -le \
                    '$apm=Debian::Apt::PM->new();$md=Module::Depends->new->dist_dir(".")->find_modules; %r=(%{$md->requires},%{$md->build_requires}); while (($m, $v) = each %r) { $f=$apm->find($m, $v); print $m, " ", $v if not $f->{"min"}  }'

    Module:

            my $aptpm = Debian::Apt::PM->new(sources => [ 'PerlPackages.bz2' ])
            $aptpm->update;
            my %moose_locations = $aptpm->find('Moose');

USAGE
  COMMAND-LINE USAGE
    Add sources for Debian releases and components. Here is the complete
    list that can be reduced just to the wanted ones:

            cat >> /etc/apt/sources.list << __END__
            # for apt-pm
            deb http://alioth.debian.org/~jozef-guest/pmindex/     lenny   main contrib non-free
            deb http://alioth.debian.org/~jozef-guest/pmindex/     squeeze main contrib non-free
            deb http://alioth.debian.org/~jozef-guest/pmindex/     wheezy  main contrib non-free
            deb http://alioth.debian.org/~jozef-guest/pmindex/     sid     main contrib non-free

            __END__

    Fetch the indexes:

            apt-pm update

    Look for the CPAN modules:

            apt-pm find Moose
            # libmoose-perl_0.17-1_all: Moose 0.17
            # libmoose-perl_0.94-1_i386: Moose 0.94
            # libmoose-perl_0.97-1_i386: Moose 0.97
            # libmoose-perl_0.54-1_all: Moose 0.54

    Look for the non-CPAN modules:

            apt-pm find Purple        
            # libpurple0_2.4.3-4lenny5_i386: Purple 0.01
        
            apt-pm find Dpkg::Version
            # dpkg-dev_1.14.28_all: Dpkg::Version 0

METHODS
  new()
    Object constructor.

    PROPERTIES
    sources
        `isa => 'ArrayRef'' of files that will be read to construct the
        lookup. By default it is filled with files from
        /var/cache/apt/apt-pm/.

    cachedir
        Is the folder where indexes cache files will be stored. Default is
        /var/cache/apt/apt-pm/deb/.

    repo_type
        `deb|deb-src'

    packages_dependencies
        Path to `02packages.dependencies.txt(.gz)?' file.

  find($module_name, [$min_version])
    Returns hash with Perl versions as key and hash value having Debian
    version and package name. Example:

            {
                    '0.94' => {
                            'version' => '0.94-1',
                            'package' => 'libmoose-perl'
                            'arch'    => 'i386'
                    },
                    '0.97' => {
                            'version' => '0.97-1',
                            'package' => 'libmoose-perl'
                            'arch'    => 'i386'
                    },
                    '0.54' => {
                            'version' => '0.54-1',
                            'package' => 'libmoose-perl'
                            'arch'    => 'i386'
                    },
            };

    If `$min_version' is set, returns `min' and `max' keys. `max' has always
    the highest version:

            'max' => {
                    'version' => '0.97-1',
                    'package' => 'libmoose-perl'
                    'arch'    => 'i386'
            },

    `min' is changing depending on `$min_version'. Examples:

            $min_version = '0.01';
            'min' => {
                    'version' => '0.54-1',
                    'package' => 'libmoose-perl'
                    'arch'    => 'i386'
            },
            $min_version = '0.93';
            'min' => {
                    'version' => '0.94-1',
                    'package' => 'libmoose-perl'
                    'arch'    => 'i386'
            },
            $min_version = '1.00';
            'min' => undef,

  update
    Scans the /etc/apt/sources.list and /etc/apt/sources.list.d/*.list
    repositories for PerlPackages.bz2 and prepares them to be used for find.
    All PerlPackages.bz2 are stored to /var/cache/apt/apt-pm/.

    It also fetches
    http://pkg-perl.alioth.debian.org/cpan2deb/CPAN/02packages.dependencies.
    txt.gz to be used by `apt-cpan'.

  clean
    Remove all files from cache folder.

  resolve_install_depends($force_all, @modules)
    Returns two array references one with Debian packages, the other with
    CPAN packages that needs to be installed on current system for the given
    list of `@modules'.

    Option `$force_all' (true/false) choose to include all dependencies not
    just the ones that needs to be installed.

  module_depends($module)
    Return all Perl modules and Debian packages `$module' has as dependency.

SEE ALSO
    http://pkg-perl.alioth.debian.org/cpan2deb/

AUTHOR
    jozef@kutej.net, `<jkutej at cpan.org>'

BUGS
    Please report any bugs or feature requests to `bug-debian-apt-pm at
    rt.cpan.org', or through the web interface at
    http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Debian-Apt-PM. I will be
    notified, and then you'll automatically be notified of progress on your
    bug as I make changes.

SUPPORT
    You can find documentation for this module with the perldoc command.

        perldoc Debian::Apt::PM

    You can also look for information at:

    * RT: CPAN's request tracker
        http://rt.cpan.org/NoAuth/Bugs.html?Dist=Debian-Apt-PM

    * AnnoCPAN: Annotated CPAN documentation
        http://annocpan.org/dist/Debian-Apt-PM

    * CPAN Ratings
        http://cpanratings.perl.org/d/Debian-Apt-PM

    * Search CPAN
        http://search.cpan.org/dist/Debian-Apt-PM/

ACKNOWLEDGEMENTS
LICENSE AND COPYRIGHT
    Copyright 2010 jkutej@cpan.org.

    This program is free software; you can redistribute it and/or modify it
    under the terms of either: the GNU General Public License as published
    by the Free Software Foundation; or the Artistic License.

    See http://dev.perl.org/licenses/ for more information.

Something went wrong with that request. Please try again.