Tento stručný průvodce vysvětluje, jak nainstalovat moduly Perl na Linux z CPAN (C všeobjímající P erl A archiv N síť) úložiště. V době psaní této příručky existuje 185 128 modulů Perl k dispozici v CPAN. Mnoho programů napsaných v programovacím jazyce Perl závisí na určitých modulech perlu, aby provedly konkrétní úkol. Například nedávno jsem testoval Sysadmin-util který poskytuje kolekci užitečných nástrojů pro správce systému Linux/Unix . Když testuji konkrétní nástroj s názvem multi-ping , narazil jsem na následující chybu:
$ ./multi-ping google.com The required Net::DNS module is missing. Aborting.
V takových případech musíte najít a nainstalovat chybějící modul perl, abyste mohli tento program používat.
Instalace modulů Perl v systému Linux
Existuje mnoho dostupných nástrojů k instalaci a modulů Perl. Vyzkoušíme dva nástroje, konkrétně cpan a cpanm . Stojí za zmínku, že mnoho modulů na CPAN vyžaduje nejnovější verzi Perlu verze 5.8 nebo výše.
Ujistěte se, že jste nainstalovali 'make' balíček ve vaší distribuci Linuxu. 'make' je základní nástroj pro vytváření modulů perl.
Pokud nenainstalujete 'make', můžete se setkat s chybou podobnou níže:
Can't configure the distribution. You probably need to have 'make'.
Balíček 'make' je dostupný ve výchozích repozitářích většiny distribucí Linuxu.
Chcete-li nainstalovat „make“ na Arch Linux a jeho varianty, spusťte:
$ sudo pacman -S make
V Debianu , Ubuntu , Linux Mint :
$ sudo apt install make
Na Fedoře :
$ sudo dnf install make
Na RHEL , CentOS :
$ sudo yum install make
Na SUSE/openSUSE :
$ sudo zypper install make
Pojďme do toho a nainstalujme perl moduly.
Nainstalujte moduly Perl pomocí cpan
cpan je klient příkazového řádku pro úložiště CPAN a je standardně distribuován se všemi edicemi Perlu.
Chcete-li nainstalovat modul Perl, například Net::DNS , zadejte do shellu cpan pomocí příkazu:
$ sudo cpan
A zadejte následující příkaz z příkazového řádku cpan pro instalaci modulu:
install Net::DNS
Jakmile je modul nainstalován, zadejte 'exit' vrátit se zpět do své skořápky.
Modul můžete také nainstalovat přímo z Terminálu pomocí příkazu:
$ sudo cpan Net::DNS
Nainstalujte moduly Perl pomocí Cpanminus
Cpanminus nebo cpanm je cpan klient pro získávání, rozbalování, sestavování a instalaci modulů z úložiště CPAN. Je to samostatný skript bez závislosti, který vyžaduje nulovou konfiguraci. Mnoho zkušených vývojářů v Perlu dává přednost cpanm před cpan.
cpanminus lze nainstalovat mnoha způsoby.
1. Použití Perlu:
Chcete-li nainstalovat nejnovější verzi cpanm do systému Linux, stačí spustit:
$ curl -L https://cpanmin.us | perl - --sudo App::cpanminus
Tento příkaz nainstaluje cpanm v celém systému a nainstaluje cpanm binární do vašeho adresáře bin jako /usr/local/bin .
2. Použití správce balíčků distribuce:
cpanm je také k dispozici ve výchozích úložištích několika distribucí Linuxu. Je to stabilní verze, ale trochu stará.
Chcete-li nainstalovat cpanminus na Arch Linux a jeho varianty, spusťte:
$ sudo pacman -S cpanminus
V systémech Debian, Ubuntu, Linux Mint:
$ sudo apt install cpanminus
Na CentOS:
$ sudo yum install perl-App-cpanminus
3. Ruční instalace:
Případně si můžete ručně stáhnout nejnovější binární soubor cpanm a vložit jej do své $PATH, jak je uvedeno níže.
$ curl -L https://cpanmin.us/ -o cpanm
$ chmod +x cpanm
$ sudo mv cpanm /usr/local/bin/cpanm
Po instalaci cpanm můžete nainstalovat libovolný modul Perl, například Net::DNS, spuštěním následujícího příkazu z vašeho terminálu:
$ sudo cpanm Net::DNS
Ukázkový výstup:
--> 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
Nainstalujte chybějící moduly Perl pomocí správce balíčků distribuce
Mnoho modulů Perlu je dostupných jako balíčky, takže je můžete nainstalovat pomocí správce balíčků vaší distribuce.
Na Debianu, Ubuntu:
$ apt-cache search 'perl$' | grep Net::DNS
Výstup:
libnet-dns-zonefile-fast-perl - fast BIND-style zonefile parser on top of Net::DNS
Jak vidíte, modul Net::DS poskytuje "libnet-dns-zonefile-fast-perl", takže jej nainstalujme příkazem:
$ sudo apt install libnet-dns-zonefile-fast-perl
Chcete-li najít chybějící modul v Arch Linuxu, spusťte:
$ pacman -Ss '^perl-' | grep Net::DNS
A nainstalujte chybějící modul pomocí příkazu 'pacman'.
Seznam nainstalovaných modulů Perl
Chcete-li zobrazit seznam nainstalovaných modulů Perl, použijte příkaz 'perldoc':
$ perldoc perllocal
Ukázkový výstup:
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: "
Dalším způsobem, jak zobrazit seznam nainstalovaných modulů Perl, je použít příkaz 'instmodsh', jak je uvedeno níže.
$ instmodsh
Uvidíte následující výstup:
Available commands are: l - List all installed modules m <module> - Select a module q - Quit the program cmd?
V cmd zadejte 'l' k seznamu modulů.
Installed modules are: App::cpanminus Digest::BubbleBabble Digest::HMAC Module::Build Net::DNS Perl cmd?
Upozorňujeme, že dva výše uvedené příkazy zobrazí seznam modulů nainstalovaných pomocí cpan. V distribuci Linuxu může být nainstalováno mnoho modulů buď ručně, nebo předinstalovaných.
Chcete-li najít všechny nainstalované moduly Perl, spusťte:
$ cpan -l
Nebo,
$ cpan -a
Odinstalujte moduly Perl
Moduly Perlu lze snadno odstranit pomocí cpanm pomocí příkazu:
$ sudo cpanm --uninstall Net::DNS
Napište y a stiskněte ENTER pro odstranění modulu long se všemi konfiguračními soubory.
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
Doufám, že to pomůže.