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