Installation: Zonemaster-CLI

Table of contents

Overview

Zonemaster-CLI provides a CLI (command line interface) to Zonemaster. To install follow the instructions below. An alternative to installing Zonemaster-CLI is to run it under Docker. See Using the CLI for run it under Docker.

Prerequisites for CPAN installation

Before installing Zonemaster::CLI from CPAN, you should install Zonemaster::Engine, unless you are to install on Debian using pre-built packages (see below).

Note: Zonemaster::Engine and Zonemaster::LDNS are dependencies of Zonemaster::CLI. Zonemaster::LDNS has a special installation requirement, and Zonemaster::Engine has a list of dependencies that you may prefer to install from your operating system distribution (rather than CPAN). We recommend following the Zonemaster::Engine installation instruction.

Prerequisite for FreeBSD is that the package system is updated and activated (see the FreeBSD section of Zonemaster::Engine installation).

For details on supported versions of Perl and operating system for Zonemaster::CLI, see the declaration of prerequisites.

Local installation

Installation on Rocky Linux

  1. Install dependencies:

    sudo dnf install --assumeyes perl-JSON-XS perl-Try-Tiny perl-Test-Deep perl-Mojolicious
    
    sudo cpanm --notest JSON::Validator
    

Note: Test::Deep and Mojolicious are indirect dependencies. They are dependencies of JSON::Validator.

  1. Install Zonemaster::CLI

    sudo cpanm --notest Zonemaster::CLI
    

Installation on Debian and Ubuntu

Using pre-built packages is the preferred method for Debian and Ubuntu.

Installation from pre-built packages

  1. Add Zonemaster packages repository to repository list

    curl -LOs https://package.zonemaster.net/setup.sh
    sudo sh setup.sh
    
  2. Install Zonemaster CLI

    sudo apt install zonemaster-cli
    
  3. Update configuration of "locale"

    sudo perl -pi -e 's/^# (da_DK\.UTF-8.*|en_US\.UTF-8.*|es_ES\.UTF-8.*|fi_FI\.UTF-8.*|fr_FR\.UTF-8.*|nb_NO\.UTF-8.*|sv_SE\.UTF-8.*)/$1/' /etc/locale.gen
    sudo locale-gen
    

    After the update, locale -a should at least list the following locales:

    da_DK.utf8
    en_US.utf8
    es_ES.utf8
    fi_FI.utf8
    fr_FR.utf8
    nb_NO.utf8
    sv_SE.utf8
    

Installation from CPAN

  1. Install dependencies:

    sudo apt-get install locales libmodule-install-perl libtry-tiny-perl libjson-validator-perl
    
  2. Install Zonemaster::CLI:

    sudo cpanm --notest Zonemaster::CLI
    
  3. Update configuration of "locale"

    sudo perl -pi -e 's/^# (da_DK\.UTF-8.*|en_US\.UTF-8.*|es_ES\.UTF-8.*|fi_FI\.UTF-8.*|fr_FR\.UTF-8.*|nb_NO\.UTF-8.*|sv_SE\.UTF-8.*)/$1/' /etc/locale.gen
    sudo locale-gen
    

    After the update, locale -a should at least list the following locales:

    da_DK.utf8
    en_US.utf8
    es_ES.utf8
    fi_FI.utf8
    fr_FR.utf8
    nb_NO.utf8
    sv_SE.utf8
    

Installation on FreeBSD

  1. Become root:

    su -l
    
  2. Install dependencies available from binary packages:

    pkg install gmake p5-JSON-XS p5-Locale-libintl p5-Try-Tiny p5-JSON-Validator
    
  3. Install Zonemaster::CLI:

    cpanm --notest Zonemaster::CLI
    

Post-installation sanity check

Run the zonemaster-cli command:

zonemaster-cli --test basic zonemaster.net

The command is expected to take a few seconds and print some results about the delegation of zonemaster.net.

Also, verify that the manual page is properly installed:

man zonemaster-cli

Using Zonemaster-CLI

See Using the CLI for an overview on how to use zonemaster-cli after installation.

Global cache

If Zonemaster-CLI is to be used for large batches, global cache can improve performance. See Global cache in Zonemaster-Engine.

What to do next?