В этом кратком руководстве мы покажем, как установить модули Perl в Linux из репозитория CPAN (Comprehensive Perl Archive Network).
На момент написания данного руководства в CPAN было доступно 185128 модулей Perl.
Многие программы, написанные на языке программирования Perl, зависят от определенных модулей Perl для выполнения конкретной задачи.
Например, на днях я тестировал Sysadmin-util, который предоставляет набор полезных инструментов для системных администраторов Linux / Unix:
🐧 Некоторые полезные инструменты для системных администраторов Linux
Когда я тестировал определенный инструмент под названием multi-ping, я столкнулся со следующей ошибкой:
$ ./multi-ping google.com The required Net::DNS module is missing. Aborting.
Установим модули Perl на Linux
Существует множество инструментов для установки и модулей Perl.
Мы собираемся попробовать два инструмента, а именно cpan и cpanm.
Стоит отметить, что для многих модулей на CPAN требуется последняя версия Perl 5.8 или выше.
Убедитесь, что вы установили пакет «make» в свой дистрибутив Linux.
«Make» – важный инструмент для создания Perl-модулей.
Если вы не устанавливаете «make», вы можете столкнуться с ошибкой, подобной приведенной ниже:
Can't configure the distribution. You probably need to have 'make'.
Пакет make доступен в репозиториях по умолчанию в большинстве дистрибутивов Linux.
Чтобы установить «make» в Arch Linux и его вариантах, запустите:
$ 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
cpan является клиентом командной строки для репозитория CPAN и по умолчанию распространяется со всеми версиями Perl.
Чтобы установить модуль Perl, например Net :: DNS, введите в оболочку cpan команду:
$ sudo cpan
install Net::DNS
После установки модуля введите «exit», чтобы вернуться в свою оболочку.
Вы также можете напрямую установить модуль из Терминала с помощью команды:
$ sudo cpan Net::DNS
Установим модули Perl, используя Cpanminus
Cpanminus или cpanm – это клиент cpan для получения, распаковки, сборки и установки модулей из репозитория CPAN.
Это автономный скрипт без зависимостей, который требует нулевой настройки.
Многие опытные разработчики Perl предпочитают cpanm нежели cpan.
Cpanminus может быть установлен разными способами.
1. Используя Perl:
Чтобы установить последнюю версию cpanm в вашей системе Linux, просто запустите:
$ curl -L https://cpanmin.us | perl - --sudo App::cpanminus
2. Используя менеджер пакетов дистрибутива:
cpanm также доступен в репозиториях по умолчанию нескольких дистрибутивов Linux.
Это стабильная версия, но немного старая.
Чтобы установить cpanminus на Arch Linux и его вариантах, запустите:
$ sudo pacman -S cpanminus
На Debian, Ubuntu, Linux Mint:
$ sudo apt install cpanminus
На CentOS:
$ sudo yum install perl-App-cpanminus
3. Ручная установка:
Кроме того, вы можете вручную загрузить последний двоичный файл cpanm и поместить его в ваш $PATH, как показано ниже.
$ curl -L https://cpanmin.us/ -o cpanm
$ chmod +x cpanm
$ sudo mv cpanm /usr/local/bin/cpanm
$ 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
$ sudo apt install libnet-dns-zonefile-fast-perl
Чтобы найти отсутствующий модуль в Arch Linux, запустите:
$ pacman -Ss '^perl-' | grep Net::DNS
Список установленных модулей Perl
Чтобы просмотреть список установленных модулей Perl, используйте команду «perldoc»:
$ perldoc perllocal
Вывод:
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: "
$ instmodsh
Вы увидите следующий вывод:
Available commands are: l - List all installed modules m <module> - Select a module q - Quit the program 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
Модули Perl могут быть легко удалены с помощью cpanm с помощью команды:
$ sudo cpanm --uninstall Net::DNS
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