Как установить модули Perl в Linux
В этом кратком руководстве объясняется, как установить модули Perl в Linux из CPAN (Cкомплексный Perl Archive >сетевойрепозиторий). На момент написания этого руководства в CPAN было 185 128 модулей Perl. Многие программы, написанные на языке программирования Perl, зависят от определенных модулей Perl для выполнения конкретной задачи. Например, на днях я тестировал Sysadmin-util, который предоставляет набор полезных инструментов для системных администраторов Linux/Unix. Когда я тестировал специальный инструмент под названием 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 и поместить ее в свой путь `, как показано ниже.
curl -L https://cpanmin.us/ -o cpanm
chmod +x cpanm
sudo mv cpanm /usr/local/bin/cpanm
После установки cpanm вы можете установить любой модуль 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 доступны в виде пакетов, поэтому вы можете установить их с помощью менеджера пакетов вашего дистрибутива.
В Дебиане, Убунту:
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?
В командной строке 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
Надеюсь это поможет.