如何在Linux上安装Perl模块
本简要介绍介绍了如何从CPAN(综合Perl归档网络)存储库上的Linux上安装Perl模块。
首先编写本教程,CPAN中有185,128个Perl模块可用。
以Perl编程语言编写的许多程序取决于某些Perl模块以执行特定任务。
例如,另一天我正在测试Sysadmin-Util,它为Linux/Unix Sysadmins提供了一系列有用的工具。
当我测试一个名为Multi-ping的特定工具时,我遇到了以下错误:
$./multi-ping google.com The required Net::DNS module is missing. Aborting.
在这种情况下,我们需要查找并安装缺少的Perl模块以便使用该程序。
在Linux上安装Perl模块
有许多工具可安装和Perl模块。
我们将尝试两款工具即CPAN和CPANM。
值得一提的是,CPAN上的许多模块都需要最近版本的Perl版本5.8或者更高版本。
请确保我们在Linux发行版上安装了"make"包。
'make'是构建Perl模块的重要工具。
如果我们未安装"make",则可能遇到错误的错误:
Can't configure the distribution. You probably need to have 'make'.
"Make"软件包可在大多数Linux发行版的默认存储库中提供。
要在Arch Linux上安装'Make'及其变体,请运行:
$sudo pacman -S make
在Debian,Ubuntu,Linux Mint:
$sudo apt install make
关于Fedora:
$sudo dnf install make
在Rhel,Centos:
$sudo yum install make
在SUSE/OpenSUSE上:
$sudo zypper install make
让我们继续安装Perl模块。
使用CPAN安装Perl模块
CPAN是CPAN存储库的命令行客户端,默认情况下与所有Perl Edition一起分发。
要安装Perl模块,例如Net :: DNS,请使用命令输入CPAN shell:
$sudo cpan
并键入CPAN提示符以安装模块的以下命令:
install Net::DNS
安装模块后,请键入"退出"以返回到Shell。
我们还可以使用命令直接从终端安装模块:
$sudo cpan Net::DNS
使用CPANMINUS安装PERL模块
CPANMINUS或者CPANM是从CPAN存储库获取,解压缩,构建和安装模块的CPAN客户端。
它是一个独立的依赖脚本,需要零配置。
许多经验丰富的Perl开发人员喜欢CPAN的CPANM。
CPANMINUS可以以多种方式安装。
1.使用Perl:
要在Linux系统上安装最新的CPANM版本,请运行:
$curl -L https://cpanmin.us | perl - --sudo App::cpanminus
此命令将安装CPANM系统范围,并将CPANM二进制文件安装到BIN目录(如/USR/Local/Bin)。
2.使用分发包装管理器:
CPANM也可用于多个Linux发行版的默认存储库中。
它是稳定的版本,但旧。
要在Arch Linux上安装CPANMINUS及其变体,请运行:
$sudo pacman -S cpanminus
在Debian,Ubuntu,Linux Mint:
$sudo apt install cpanminus
在CentOS上:
$sudo yum install perl-App-cpanminus
3.手动安装:
或者,我们可以手动下载最新的CPANM二进制文件,并将其放在下面的$LACK中。
$curl -L https://cpanmin.us/-o cpanm
$chmod +x cpanm
$sudo mv cpanm /usr/local/bin/cpanm
安装CPANM后,我们可以通过从终端运行以下命令来安装任何PERL MODUL,例如NET :: DNS,例如:
$sudo cpanm Net::DNS
示例输出:
--> 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
使用分发包管理器安装缺少的Perl模块
许多Perl模块都可以作为包提供,因此我们可以使用分发的包管理器安装它。
在Debian,Ubuntu:
$apt-cache search 'perl$' | grep Net::DNS
输出:
libnet-dns-zonefile-fast-perl - fast BIND-style zonefile parser on top of Net::DNS
正如我们所看到的,NET :: DS模块由"Libnet-DNS-Zonefile-Fast-Perl"提供,因此让我们使用命令安装它:
$sudo apt install libnet-dns-zonefile-fast-perl
要查找Arch Linux上的缺失模块,请运行:
$pacman -Ss '^perl-' | grep Net::DNS
并使用'pacman'命令安装丢失的模块。
列表安装了Perl模块
要列出已安装的Perl模块,请使用'perldoc'命令:
$perldoc perllocal
示例输出:
Thu Jan 30 10:45:11 2017: "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 2017: "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 2017: "Module" Digest::BubbleBabble * "installed into: /usr/local/share/perl/5.26.1" * "LINKTYPE: dynamic" * "VERSION: 0.02" * "EXE_FILES: "
列出已安装的Perl模块的另一种方法是使用"instmodsh"命令如下面。
$instmodsh
我们将看到以下输出:
Available commands are: l - List all installed modules m <module> - Select a module q - Quit the program cmd?
在CMD提示符中,键入"L"以列出模块。
Installed modules are: App::cpanminus Digest::BubbleBabble Digest::HMAC Module::Build Net::DNS Perl cmd?
请注意,上述两个命令将列出使用CPAN安装的模块。
可以使用Linux发行版手动安装许多模块或者预先安装。
要查找所有已安装的Perl模块,请运行:
$cpan -l
或者,
$cpan -a
卸载Perl模块
使用Comman使用命令可以轻松地删除Perl模块:
$sudo cpanm --uninstall Net::DNS
y键入y并按Enter键删除包含所有配置文件的模块。
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