Ce bref guide explique comment installer des modules Perl sur Linux à partir de CPAN (C P complet erl A archiver N etwork). Au moment de la rédaction de ce guide, il existe 185 128 modules Perl disponible dans le CPAN. De nombreux programmes écrits en langage de programmation Perl dépendent de certains modules perl pour effectuer une tâche spécifique. Par exemple, l'autre jour, je testais Sysadmin-util qui fournit une collection d'outils utiles pour les administrateurs système Linux/Unix . Lorsque je teste un outil spécifique appelé multi-ping , j'ai rencontré l'erreur suivante :
$ ./multi-ping google.com The required Net::DNS module is missing. Aborting.
Dans de tels cas, vous devez trouver et installer le module perl manquant afin d'utiliser ce programme.
Installer des modules Perl sous Linux
Il existe de nombreux outils disponibles pour installer des modules Perl. Nous allons essayer deux outils à savoir cpan et cpanm . Il est à noter que de nombreux modules sur CPAN nécessitent la version récente de Perl version 5.8 ou supérieur.
Veuillez vous assurer que vous avez installé 'make' package sur votre distribution Linux. 'make' est un outil essentiel pour construire des modules perl.
Si vous n'installez pas 'make', vous pourriez rencontrer une erreur comme ci-dessous :
Can't configure the distribution. You probably need to have 'make'.
Le package 'make' est disponible dans les dépôts par défaut de la plupart des distributions Linux.
Pour installer 'make' sur Arch Linux et ses variantes, lancez :
$ sudo pacman -S make
Sur Debian , Ubuntu , Linux Mint :
$ sudo apt install make
Sur Fedora :
$ sudo dnf install make
Sur RHEL , CentOS :
$ sudo yum install make
Sur SUSE/openSUSE :
$ sudo zypper install make
Allons-y et installons les modules perl.
Installer des modules Perl à l'aide de cpan
cpan est un client en ligne de commande pour le référentiel CPAN et est distribué avec toutes les éditions Perl par défaut.
Pour installer un module Perl, par exemple Net::DNS , entrez dans le shell cpan à l'aide de la commande :
$ sudo cpan
Et tapez la commande suivante à partir de l'invite cpan pour installer le module :
install Net::DNS
Une fois le module installé, tapez 'exit' pour retourner dans votre coquille.
Vous pouvez également installer directement le module depuis le Terminal en utilisant la commande :
$ sudo cpan Net::DNS
Installer des modules Perl avec Cpanminus
Cpan moins ou cpanm est un client cpan pour obtenir, décompresser, construire et installer des modules à partir du référentiel CPAN. Il s'agit d'un script autonome, sans dépendance, qui ne nécessite aucune configuration. De nombreux développeurs Perl expérimentés préfèrent cpanm à cpan.
cpanminus peut être installé de plusieurs façons.
Pour installer la dernière version de cpanm sur votre système Linux, exécutez simplement :
$ curl -L https://cpanmin.us | perl - --sudo App::cpanminus
Cette commande installera cpanm à l'échelle du système et installera le binaire cpanm dans votre répertoire bin comme /usr/local/bin .
cpanm est également disponible dans les référentiels par défaut de plusieurs distributions Linux. C'est une version stable, mais un peu ancienne.
Pour installer cpanminus sur Arch Linux et ses variantes, exécutez :
$ sudo pacman -S cpanminus
Sur Debian, Ubuntu, Linux Mint :
$ sudo apt install cpanminus
Sur CentOS :
$ sudo yum install perl-App-cpanminus
Alternativement, vous pouvez télécharger manuellement le dernier binaire cpanm et le mettre dans votre $PATH comme ci-dessous.
$ curl -L https://cpanmin.us/ -o cpanm
$ chmod +x cpanm
$ sudo mv cpanm /usr/local/bin/cpanm
Après avoir installé cpanm, vous pouvez installer n'importe quel module Perl, par exemple Net::DNS, en exécutant la commande suivante depuis votre Terminal :
$ sudo cpanm Net::DNS
Exemple de résultat :
--> Working on Net::DNS Fetching http://www.cpan.org/authors/id/N/NL/NLNETLABS/Net-DNS-1.21.tar.gz ... OK Configuring Net-DNS-1.21 ... OK ==> Found dependencies: Digest::HMAC --> Working on Digest::HMAC Fetching http://www.cpan.org/authors/id/G/GA/GAAS/Digest-HMAC-1.03.tar.gz ... OK Configuring Digest-HMAC-1.03 ... OK Building and testing Digest-HMAC-1.03 ... OK Successfully installed Digest-HMAC-1.03 Building and testing Net-DNS-1.21 ... OK Successfully installed Net-DNS-1.21 2 distributions installed
Installez les modules Perl manquants à l'aide du gestionnaire de paquets de la distribution
De nombreux modules Perl sont disponibles sous forme de packages, vous pouvez donc les installer à l'aide du gestionnaire de packages de votre distribution.
Sur Debian, Ubuntu :
$ apt-cache search 'perl$' | grep Net::DNS
Sortie :
libnet-dns-zonefile-fast-perl - fast BIND-style zonefile parser on top of Net::DNS
Comme vous pouvez le voir, le module Net::DS est fourni par "libnet-dns-zonefile-fast-perl", alors installons-le en utilisant la commande :
$ sudo apt install libnet-dns-zonefile-fast-perl
Pour trouver le module manquant sur Arch Linux, exécutez :
$ pacman -Ss '^perl-' | grep Net::DNS
Et installez le module manquant à l'aide de la commande 'pacman'.
Liste des modules Perl installés
Pour lister les modules Perl installés, utilisez la commande 'perldoc' :
$ perldoc perllocal
Exemple de résultat :
Thu Jan 30 10:45:11 2020: "Module" Digest::HMAC * "installed into: /usr/local/share/perl/5.26.1" * "LINKTYPE: dynamic" * "VERSION: 1.03" * "EXE_FILES: " Thu Jan 30 10:47:41 2020: "Module" Net::DNS * "installed into: /usr/local/share/perl/5.26.1" * "LINKTYPE: dynamic" * "VERSION: 1.21" * "EXE_FILES: " Thu Jan 30 10:48:54 2020: "Module" Digest::BubbleBabble * "installed into: /usr/local/share/perl/5.26.1" * "LINKTYPE: dynamic" * "VERSION: 0.02" * "EXE_FILES: "
Une autre façon de lister les modules Perl installés est d'utiliser la commande 'instmodsh' comme ci-dessous.
$ instmodsh
Vous verrez la sortie suivante :
Available commands are: l - List all installed modules m <module> - Select a module q - Quit the program cmd?
Dans cmd invite, tapez 'l' pour lister les modules.
Installed modules are: App::cpanminus Digest::BubbleBabble Digest::HMAC Module::Build Net::DNS Perl cmd?
Veuillez noter que les deux commandes ci-dessus listeront les modules installés avec cpan. De nombreux modules peuvent être installés manuellement ou préinstallés avec votre distribution Linux.
Pour trouver tous les modules Perl installés, exécutez :
$ cpan -l
Ou,
$ cpan -a
Désinstaller les modules Perl
Les modules Perl peuvent être facilement supprimés à l'aide de cpanm à l'aide de la commande :
$ sudo cpanm --uninstall Net::DNS
Tapez y et appuyez sur ENTER pour supprimer le module long avec tous les fichiers de configuration.
Net::DNS contains the following files: /usr/local/man/man3/Net::DNS.3pm /usr/local/man/man3/Net::DNS::Domain.3pm /usr/local/man/man3/Net::DNS::DomainName.3pm [...] /usr/local/share/perl/5.26.1/Net/DNS/Text.pm /usr/local/share/perl/5.26.1/Net/DNS/Update.pm /usr/local/share/perl/5.26.1/Net/DNS/ZoneFile.pm Are you sure you want to uninstall Net::DNS? [y] y
J'espère que cela vous aidera.