This document describes prerequisites, installation, post-install sanity checking for Zonemaster::Engine, and rounds up with a few pointer to interfaces for Zonemaster::Engine. For an overview of the Zonemaster product, please see the main Zonemaster Repository.
Zonemaster-CLI is available on Docker Hub, and can be conveniently downloaded and run without any installation. See USING Zonemaster-CLI for how to run Zonemaster-CLI on Docker.
To build your own Docker image, see the Docker Image Creation documentation.
The rest of this document is about doing a local installation of Zonemaster-Engine, not relevant for running Zonemaster-CLI on Docker.
For details on supported operating system versions and Perl verisons for Zonemaster::Engine, see the declaration of prerequisites.
-
Enable PowerTools:
sudo dnf config-manager --set-enabled powertools
-
Install the EPEL repository:
sudo dnf --assumeyes --enablerepo=extras install epel-release
-
Install binary packages:
sudo dnf --assumeyes install cpanminus gcc libidn2-devel openssl-devel perl-Class-Accessor perl-Clone perl-core perl-Devel-CheckLib perl-Email-Valid perl-File-ShareDir perl-File-Slurp perl-libintl perl-IO-Socket-INET6 perl-List-MoreUtils perl-Module-Find perl-Module-Install perl-Moose perl-Net-IP perl-Pod-Coverage perl-Readonly perl-Test-Differences perl-Test-Exception perl-Test-Fatal perl-Test-NoWarnings perl-Test-Pod perl-Text-CSV perl-Test-Simple perl-YAML
-
Install packages from CPAN:
sudo cpanm Module::Install::XSUtil MooseX::Singleton
-
Install Zonemaster::LDNS and Zonemaster::Engine:
sudo cpanm Zonemaster::LDNS Zonemaster::Engine
Using pre-built packages is the preferred method for Debian and Ubuntu.
-
Upgrade to latest patch level
sudo apt update && sudo apt upgrade
-
Add Zonemaster packages repository to repository list
curl -LOs https://package.zonemaster.net/setup.sh sudo sh setup.sh
-
Install Zonemaster Engine
sudo apt install libzonemaster-engine-perl
-
Upgrade to latest patch level
sudo apt update && sudo apt upgrade
-
Install dependencies from binary packages:
sudo apt install autoconf automake build-essential cpanminus libclass-accessor-perl libclone-perl libdevel-checklib-perl libemail-valid-perl libfile-sharedir-perl libfile-slurp-perl libidn2-dev libintl-perl libio-socket-inet6-perl liblist-moreutils-perl libmodule-find-perl libmodule-install-perl libmodule-install-xsutil-perl libmoose-perl libmoosex-singleton-perl libnet-ip-perl libpod-coverage-perl libreadonly-perl libssl-dev libldns3 libldns-dev libtest-differences-perl libtest-exception-perl libtest-fatal-perl libtest-nowarnings-perl libtest-pod-perl libtext-csv-perl libtool m4
-
Install Zonemaster::LDNS and Zonemaster::Engine.
sudo cpanm --configure-args="--no-internal-ldns" Zonemaster::LDNS Zonemaster::Engine
-
Become root:
su -l
-
Update list of package repositories:
Create the file
/usr/local/etc/pkg/repos/FreeBSD.conf
with the following content, unless it is already updated:FreeBSD: { url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest", }
-
Check or activate the package system:
Run the following command, and accept the installation of the
pkg
package if suggested.pkg info -E pkg
-
Update local package repository:
pkg update -f
-
Install dependencies from binary packages:
pkg install devel/gmake libidn2 p5-App-cpanminus p5-Class-Accessor p5-Clone p5-Devel-CheckLib p5-Email-Valid p5-File-ShareDir p5-File-Slurp p5-IO-Socket-INET6 p5-List-MoreUtils p5-Locale-libintl p5-Module-Find p5-Module-Install p5-Module-Install-XSUtil p5-Moose p5-MooseX-Singleton p5-Net-IP-XS p5-Pod-Coverage p5-Readonly p5-Test-Differences p5-Test-Exception p5-Test-Fatal p5-Test-NoWarnings p5-Test-Pod p5-Text-CSV net-mgmt/p5-Net-IP dns/ldns
-
Install Zonemaster::LDNS:
cpanm --configure-args="--no-internal-ldns" Zonemaster::LDNS
-
Install Zonemaster::Engine:
cpanm Zonemaster::Engine
Please note! CentOS 7 will only be supported until the release of v2023.1, which is expected to happen during the spring of 2023. Consider Rocky Linux for an alternative Red Hat Linux derivative. If you like you could reach out to let us know to which OS you migrated.
-
Install the EPEL repository:
sudo yum --assumeyes --enablerepo=extras install epel-release
-
Install binary packages:
sudo yum --assumeyes install cpanminus gcc libidn2-devel openssl-devel openssl11-devel perl-Class-Accessor perl-Clone perl-core perl-Devel-CheckLib perl-Email-Valid perl-File-ShareDir perl-File-Slurp perl-libintl perl-IO-Socket-INET6 perl-List-MoreUtils perl-Module-Find perl-Module-Install perl-Moose perl-Net-IP perl-Pod-Coverage perl-Readonly perl-Test-Differences perl-Test-Exception perl-Test-Fatal perl-Test-NoWarnings perl-Test-Pod perl-Text-CSV perl-Test-Simple perl-YAML
-
Install packages from CPAN:
sudo cpanm Module::Install::XSUtil MooseX::Singleton
-
Install Zonemaster::LDNS with support for DNSSEC algorithms 15 and 16:
sudo cpanm --configure-args="--openssl-lib=/usr/lib64/openssl11 --openssl-inc=/usr/include/openssl11" Zonemaster::LDNS
-
Finally install Zonemaster::Engine
sudo cpanm Zonemaster::Engine
Make sure Zonemaster::Engine is properly installed.
time perl -MZonemaster::Engine -E 'say join "\n", Zonemaster::Engine->test_module("BASIC", "zonemaster.net")'
The command is expected to take a few seconds and print some results about the delegation of zonemaster.net.
- For a command line interface, follow the Zonemaster::CLI installation instruction.
- For a web interface, follow the Zonemaster::Backend installation and Zonemaster::GUI installation instructions.
- For a JSON-RPC API, follow the Zonemaster::Backend installation instruction.
- For a Perl API, see the Zonemaster::Engine API documentation.