===== 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