В этом кратком руководстве мы покажем, как установить модули 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, чтобы использовать эту программу.

Установим модули 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.

Установим модули Perl, используя cpan

cpan является клиентом командной строки для репозитория CPAN и по умолчанию распространяется со всеми версиями Perl.

Чтобы установить модуль Perl, например Net :: DNS, введите в оболочку cpan команду:

$ sudo cpan
И введите в командной строке 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
Эта команда установит cpanm для всей системы и установит бинарник cpanm в каталог bin, например /usr/local/bin.

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
После установки cpan вы можете установить любой модуль Perl, например 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 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: "
Другой способ вывести список установленных модулей Perl — использовать команду «instmodsh», как показано ниже.
$ 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
Введите 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
На это пока все:-)
Как всегда комментарии приветсвуются!
Поделитесь статьей:

Добавить комментарий