Table of Contents

Building Debian packages of Perl modules

Some example commands to build Debian packages of Perl modules, using Dh-make-perl.

Installing dh-make-perl

apt-get install dh-make-perl build-essential apt-file
apt-file update # Needed to build packages with correct dependencies listed

Standard package build from CPAN

PERL_MM_OPT='NO_PACKLIST=1 NO_PERLLOCAL=1' cpan2deb HTML::Parse

Building a package and all dependencies

The following command is the “super” option to build and install everything needed for a particular package. It will install any dependencies needed if they already exist as packages, if not it will build them as well.

PERL_MM_OPT='NO_PACKLIST=1 NO_PERLLOCAL=1' cpan2deb --core-ok  --install  --install-deps --install-build-deps --recursive  CSS::Object

Specifying a revision

The revision of a package can be specified as follows. This is needed if rebuilding the same version of a module, to ensure uniqueness in package repositories.

PERL_MM_OPT='NO_PACKLIST=1 NO_PERLLOCAL=1' cpan2deb  Markdown::Parser --version=0.4.1 --revision=1

Earlier versions of dh-make-perl appear to have a bug which means that the –revision flag does not work, in which case the following can be used:

PERL_MM_OPT='NO_PACKLIST=1 NO_PERLLOCAL=1' cpan2deb  Markdown::Parser --version=0.4.1-1

Building a more up to date module that is in core

PERL_MM_OPT='NO_PACKLIST=1 NO_PERLLOCAL=1' cpan2deb  --core-ok Digest::MD5

Downloading and building a package manually

Normally it is easier to use cpan2deb as that downloads and builds a package in one go. Sometimes you need to use a custom source tree though.

wget https://cpan.metacpan.org/authors/id/J/JD/JDEGUEST/Module-Generic-v0.37.3.tar.gz
tar -zxvf Module-Generic-v0.37.3.tar.gz
chown -R andrew:users Module-Generic-v0.37.3
cd Module-Generic-v0.37.3/
PERL_MM_OPT='NO_PACKLIST=1 NO_PERLLOCAL=1' dh-make-perl --build --version=0.37.3