Diese kurze Anleitung erklärt, wie man Perl-Module unter Linux von CPAN installiert (C umfassendes P erl A N erhalten etwork)-Repository. Zum Zeitpunkt der Erstellung dieses Handbuchs gibt es 185.128 Perl-Module im CPAN verfügbar. Viele in der Programmiersprache Perl geschriebene Programme hängen von bestimmten Perl-Modulen ab, um eine bestimmte Aufgabe auszuführen. Neulich habe ich zum Beispiel Sysadmin-util getestet das eine Sammlung von nützlichen Tools für Linux/Unix-Systemadministratoren bereitstellt . Wenn ich ein bestimmtes Tool namens Multi-Ping teste , bin ich auf folgenden Fehler gestoßen:
$ ./multi-ping google.com The required Net::DNS module is missing. Aborting.
In solchen Fällen müssen Sie das fehlende Perl-Modul finden und installieren, um dieses Programm verwenden zu können.
Perl-Module unter Linux installieren
Es gibt viele Tools zum Installieren und Perl-Module. Wir werden zwei Tools ausprobieren, nämlich cpan und cpanm . Es ist erwähnenswert, dass viele Module auf CPAN die aktuelle Version von Perl Version 5.8 erfordern oder höher.
Bitte stellen Sie sicher, dass Sie 'make' installiert haben Paket auf Ihrer Linux-Distribution. 'make' ist ein wesentliches Werkzeug zum Erstellen von Perl-Modulen.
Wenn Sie „make“ nicht installieren, wird möglicherweise ein Fehler wie der folgende angezeigt:
Can't configure the distribution. You probably need to have 'make'.
Das 'make'-Paket ist in den Standard-Repositories der meisten Linux-Distributionen verfügbar.
So installieren Sie „make“ unter Arch Linux und seine Varianten, führen Sie aus:
$ sudo pacman -S make
Auf Debian , Ubuntu , Linux Mint :
$ sudo apt install make
Auf Fedora :
$ sudo dnf install make
Auf RHEL , CentOS :
$ sudo yum install make
Auf SUSE/openSUSE :
$ sudo zypper install make
Lassen Sie uns fortfahren und Perl-Module installieren.
Installieren Sie Perl-Module mit cpan
cpan ist ein Befehlszeilen-Client für das CPAN-Repository und wird standardmäßig mit allen Perl-Editionen verteilt.
Um ein Perl-Modul zu installieren, zum Beispiel Net::DNS , geben Sie die cpan-Shell mit dem Befehl ein:
$ sudo cpan
Und geben Sie den folgenden Befehl an der cpan-Eingabeaufforderung ein, um das Modul zu installieren:
install Net::DNS
Sobald das Modul installiert ist, geben Sie 'exit' ein um zu Ihrer Shell zurückzukehren.
Sie können das Modul auch direkt über das Terminal installieren, indem Sie den Befehl verwenden:
$ sudo cpan Net::DNS
Installieren Sie Perl-Module mit Cpanminus
Cpanminus oder cpanm ist ein CPAN-Client zum Abrufen, Entpacken, Erstellen und Installieren von Modulen aus dem CPAN-Repository. Es ist ein eigenständiges, abhängigkeitsfreies Skript, das keine Konfiguration erfordert. Viele erfahrene Perl-Entwickler bevorzugen cpanm gegenüber cpan.
cpanminus kann auf viele Arten installiert werden.
1. Mit Perl:
Um die neueste cpanm-Version auf Ihrem Linux-System zu installieren, führen Sie einfach Folgendes aus:
$ curl -L https://cpanmin.us | perl - --sudo App::cpanminus
Dieser Befehl installiert cpanm systemweit und installiert die cpanm-Binärdatei in Ihrem bin-Verzeichnis wie /usr/local/bin .
2. Verwenden des Paketmanagers der Distribution:
cpanm ist auch in den Standard-Repositories mehrerer Linux-Distributionen verfügbar. Es ist eine stabile Version, aber etwas alt.
Um cpanminus unter Arch Linux und seinen Varianten zu installieren, führen Sie Folgendes aus:
$ sudo pacman -S cpanminus
Unter Debian, Ubuntu, Linux Mint:
$ sudo apt install cpanminus
Unter CentOS:
$ sudo yum install perl-App-cpanminus
3. Manuelle Installation:
Alternativ können Sie die neueste cpanm-Binärdatei manuell herunterladen und wie unten in Ihrem $PATH ablegen.
$ curl -L https://cpanmin.us/ -o cpanm
$ chmod +x cpanm
$ sudo mv cpanm /usr/local/bin/cpanm
Nach der Installation von cpanm können Sie jedes Perl-Modul installieren, zum Beispiel Net::DNS, indem Sie den folgenden Befehl von Ihrem Terminal aus ausführen:
$ sudo cpanm Net::DNS
Beispielausgabe:
--> 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
Installieren Sie fehlende Perl-Module mit dem Paketmanager der Distribution
Viele Perl-Module sind als Pakete verfügbar, sodass Sie sie mit dem Paketmanager Ihrer Distribution installieren können.
Unter Debian, Ubuntu:
$ apt-cache search 'perl$' | grep Net::DNS
Ausgabe:
libnet-dns-zonefile-fast-perl - fast BIND-style zonefile parser on top of Net::DNS
Wie Sie sehen können, wird das Net::DS-Modul von "libnet-dns-zonefile-fast-perl" bereitgestellt, also lassen Sie uns es mit dem Befehl installieren:
$ sudo apt install libnet-dns-zonefile-fast-perl
Führen Sie Folgendes aus, um das fehlende Modul unter Arch Linux zu finden:
$ pacman -Ss '^perl-' | grep Net::DNS
Und installieren Sie das fehlende Modul mit dem Befehl 'pacman'.
Installierte Perl-Module auflisten
Um die installierten Perl-Module aufzulisten, verwenden Sie den Befehl 'perldoc':
$ perldoc perllocal
Beispielausgabe:
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: "
Eine andere Möglichkeit, die installierten Perl-Module aufzulisten, ist die Verwendung des 'instmodsh'-Befehls wie unten.
$ instmodsh
Sie sehen die folgende Ausgabe:
Available commands are: l - List all installed modules m <module> - Select a module q - Quit the program cmd?
In cmd geben Sie 'l' ein um die Module aufzulisten.
Installed modules are: App::cpanminus Digest::BubbleBabble Digest::HMAC Module::Build Net::DNS Perl cmd?
Bitte beachten Sie, dass die beiden obigen Befehle die mit cpan installierten Module auflisten. Es könnten viele Module entweder manuell installiert oder mit Ihrer Linux-Distribution vorinstalliert sein.
Um alle installierten Perl-Module zu finden, führen Sie Folgendes aus:
$ cpan -l
Oder,
$ cpan -a
Perl-Module deinstallieren
Die Perl-Module können einfach mit cpanm mit dem Befehl entfernt werden:
$ sudo cpanm --uninstall Net::DNS
Geben Sie y ein und drücken Sie ENTER, um das Modul long mit allen Konfigurationsdateien zu entfernen.
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
Hoffe das hilft.