Perl::Maker - Make a Custom Perl with Modules


    > perl-maker --make ingy-perl-maker.yaml
    > make install

    > make perlbrew
    > make debian
    > make dmg
    > make rpm
    > make msi


This software is pre-alpha quality. Don't use it yet.


Perl::Maker creates a custom Perl installation, complete with an entire set of modules, based on a simple YAML specification. You can share the installation as a system package (like Debian for instance). You can also share the YAML specification, or use an existing one from somebody else.

The point of Perl::Maker is to make usable Perl installations that are shareable. In many situations (especially in production environments), it is critical not just to require that Perl and some modules to be installed, but specific versions of things that are configured a specific way.

With Perl::Maker, you specify all your requirements in a clean and simple YAML file. Perl::Maker will turn this into a Makefile. Then you simply invoke make to do all the necessary work. Since the Makefile targets know all their dependencies, when you make small changes to the YAML file, only the minimum work to accomplish your goals will be performed.


Perl::Maker installs a command line tool called perl-maker. This section explains the commands you can use.

perl-maker --new filename.yaml

This will create a sample Perl::Maker YAML specification for you.

perl-maker --make filename.yaml

This will generate a Makefile from the YAML specification.


This section describes the targets that you can use in the Makefile, to do various tasks.

make install

This will build everything and install it for you.

make debian

This will make a Debian package that you can share and install on Debian based systems.

make dmg

This will make a Mac OS X distribution.

make perlbrew

Build and install in your perlbrew location.


Ingy döt Net <>


Copyright (c) 2011. Ingy döt Net.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


2 POD Errors

The following errors were encountered while parsing the POD:

Around line 64:

Unknown directive: =enccoding

Around line 151:

Non-ASCII character seen before =encoding in 'döt'. Assuming UTF-8