Perl — это мощный скриптовый язык, который до сих пор широко используется для обработки текста (регулярные выражения), написания административных скриптов, парсинга логов, а также для поддержки старых приложений (CGI, системы настройки сетевого оборудования и т.д.). В Debian Perl установлен по умолчанию, но частично — пакет perl-base содержит только интерпретатор. Если вам нужны инструменты разработки (cpan, perldoc) или дополнительные модули, нужно установить полный пакет perl. Главные сложности для новичка: понять разницу между perl-base и perl, а также, при сборке из исходников, правильно настроить PATH, чтобы не было конфликта с системным Perl.
💡 В этом руководстве вы установите Perl на Debian двумя способами: через APT (рекомендованный для большинства) и сборкой из исходников (если нужна самая свежая версия). Вы также узнаете, как установить дополнительные модули через APT и CPAN, как проверить работу Perl на тестовом скрипте и решить типичные проблемы.
В этой статье вы узнаете:
- Как установить полный пакет Perl через APT
- Как установить дополнительные Perl-модули через APT (
lib...-perl) - Как установить Perl из исходников (актуальная версия)
- Как проверить работу Perl на тестовом скрипте
- Как создать скрипт для обновления source-сборки
- Как решить типичные проблемы: конфликт версий, отсутствие
cpan, ошибки сборки
Для кого: системные администраторы, разработчики, а также все, кому нужен Perl для скриптов или старых приложений на Debian 11, 12 или 13.
1. 🔧 Предварительные требования
Перед установкой убедитесь, что:
- У вас установлена Debian 11, 12 или 13
- Подключение к интернету стабильно
- У вас есть права sudo
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает: sudo выполняет команду от имени суперпользователя, whoami показывает имя текущего пользователя.
Зачем: Эта команда проверяет, есть ли у вас права sudo. Без них вы не сможете устанавливать пакеты.
✅ Если выводит root — всё в порядке, можете продолжать.
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
1.1 Обновление системы
Перед установкой всегда обновляйте список пакетов.
sudo apt update && sudo apt upgrade -y
Что делает:
sudo— права суперпользователяapt update— обновляет список доступных пакетов из репозиториев&&— выполняет следующую команду только если предыдущая успешнаapt upgrade -y— обновляет все установленные пакеты до последних версий
Зачем: Это стандартная практика безопасности перед установкой нового ПО.
2. 📊 Сравнение способов установки Perl
В Debian есть два основных способа установки Perl. Вот их сравнение:
| Метод | Откуда | Версия | Обновления | Плюсы | Минусы |
|---|---|---|---|---|---|
| APT рекомендовано | Репозитории Debian | Debian 13: 5.40, Debian 12: 5.36, Debian 11: 5.32 | Автоматически через apt upgrade | Простота, безопасность, интеграция с системой | Версия может быть старой, особенно на Debian 11 |
| Сборка из исходников | Perl.org | Последняя стабильная (5.42) | Вручную | Максимальная свежесть | Требует установки инструментов сборки, ручное обновление |
💡 Рекомендация: Для большинства пользователей подойдёт APT. Сборку из исходников выбирайте, если вам нужна самая свежая версия Perl или специфические опции компиляции.
3. 📦 Способ 1: Установка Perl через APT (рекомендованный)
Этот способ подходит для большинства пользователей. Вы получаете версию Perl, протестированную для вашего выпуска Debian.
3.1 Проверка, установлен ли Perl (и какой именно)
perl -v | head -2
Что делает: Показывает установленную версию Perl.
✅ Ожидаемый вывод в терминале (Debian 13):
This is perl 5, version 40, subversion 1 (v5.40.1) built for x86_64-linux-gnu-thread-multi
Но важно: В минимальных установках Debian может быть только пакет perl-base (только интерпретатор, без cpan и perldoc). Проверьте:
command -v cpan
Если вывод пустой — cpan отсутствует.
3.2 Установка полного пакета Perl
sudo apt install perl -y
Что делает: Устанавливает полный пакет Perl, включая cpan, perldoc и другие инструменты.
3.3 Проверка, что теперь cpan доступен
command -v cpan
✅ Ожидаемый вывод: /usr/bin/cpan
3.4 (Опционально) Установка дополнительных Perl-модулей через APT
Debian упаковывает многие Perl-модули в отдельные пакеты с префиксом lib...-perl.
Поиск модуля (например, для MySQL):
apt-cache search perl | grep mysql
Установка модуля DBD::mysql:
sudo apt install libdbd-mysql-perl -y
Что делает: Устанавливает модуль Perl для работы с MySQL.
Другие полезные пакеты:
| Пакет | Что добавляет |
|---|---|
perl-doc | Документация (perldoc) |
libperl-dev | Заголовочные файлы для разработки |
libjson-perl | JSON-парсер |
libdatetime-perl | Работа с датами и временем |
4. 🔧 Способ 2: Сборка Perl из исходников (актуальная версия)
Этот способ подходит, если вам нужна самая свежая версия Perl (например, 5.42.x), которая ещё не попала в репозитории Debian.
4.1 Установка инструментов сборки и зависимостей
sudo apt install build-essential curl libgdbm-dev libdb-dev libgdbm-compat-dev zlib1g-dev -y
Что делает: Устанавливает компилятор, утилиты и библиотеки, необходимые для сборки Perl.
4.2 Определение последней версии и скачивание исходников
mkdir -p ~/perl-build && cd ~/perl-build
TARBALL=$(curl -fsSL https://www.perl.org/get.html | grep -oE 'perl-[0-9]+\.[0-9]+\.[0-9]+\.tar\.gz' | head -n 1)
curl -fLO --progress-bar "https://www.cpan.org/src/5.0/$TARBALL"
Что делает: Запрашивает страницу загрузки Perl.org, извлекает ссылку на последний tarball и скачивает его.
4.3 Проверка контрольной суммы (рекомендуется)
CHECKSUM_FILE="${TARBALL}.sha256.txt"
curl -fLO --progress-bar "https://www.cpan.org/src/5.0/$CHECKSUM_FILE"
EXPECTED=$(tr -d '\n\r' < "$CHECKSUM_FILE")
printf '%s %s\n' "$EXPECTED" "$TARBALL" | sha256sum -c -
✅ Ожидаемый вывод: perl-5.42.1.tar.gz: OK
4.4 Распаковка и конфигурация
tar -xzf "$TARBALL"
SOURCE_DIR="${TARBALL%.tar.gz}"
cd "$SOURCE_DIR"
./Configure -des -Dprefix=/usr/local
Что делает: Настраивает сборку для установки в /usr/local.
4.5 Компиляция и тестирование
make -j$(nproc)
make test
Сколько длится: Тесты могут занимать несколько минут.
4.6 Установка
sudo make install
Что делает: Устанавливает собранный Perl в /usr/local.
4.7 Проверка установки
which perl
/usr/local/bin/perl -v | head -2
✅ Ожидаемый вывод: /usr/local/bin/perl и версия v5.42.1.
5. 🧪 Проверка установки: тестовый скрипт
После установки Perl любым способом стоит убедиться, что он работает.
cat <<'EOF' > hello.pl
#!/usr/bin/env perl
print "Hello, world!\n";
EOF
chmod +x hello.pl
./hello.pl
✅ Ожидаемый вывод: Hello, world!
6. 🔄 Обновление source-сборки (скрипт)
Если вы собрали Perl из исходников, обновлять его нужно вручную. Вот скрипт, который автоматически скачивает последнюю версию, собирает и устанавливает её.
Создание скрипта:
cat > ~/perl-build/update-perl.sh << 'EOF'
#!/usr/bin/env bash
set -euo pipefail
INSTALL_PREFIX="/usr/local"
BUILD_DIR="$HOME/perl-build"
LOG_FILE="$BUILD_DIR/perl-update.log"
for cmd in curl gcc make sha256sum; do
if ! command -v "$cmd" >/dev/null 2>&1; then
echo "Ошибка: $cmd не установлен."
exit 1
fi
done
CURRENT_VERSION=$($INSTALL_PREFIX/bin/perl -v 2>/dev/null | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' | head -n 1 || echo "none")
TARBALL=$(curl -fsSL https://www.perl.org/get.html | grep -oE 'perl-[0-9]+\.[0-9]+\.[0-9]+\.tar\.gz' | head -n 1)
if [ -z "$TARBALL" ]; then
echo "Не удалось определить последнюю версию Perl."
exit 1
fi
LATEST_VERSION=${TARBALL#perl-}
LATEST_VERSION=${LATEST_VERSION%.tar.gz}
echo "Текущая версия: $CURRENT_VERSION"
echo "Последняя версия: v$LATEST_VERSION"
if [ "$CURRENT_VERSION" = "v$LATEST_VERSION" ]; then
echo "Perl уже последней версии."
exit 0
fi
mkdir -p "$BUILD_DIR"
cd "$BUILD_DIR"
echo "$(date): Начало обновления до v$LATEST_VERSION" >> "$LOG_FILE"
rm -rf perl-[0-9]*.tar.gz perl-[0-9]*.tar.gz.sha256.txt
curl -fL --retry 3 --progress-bar -o "$TARBALL" "https://www.cpan.org/src/5.0/$TARBALL"
CHECKSUM_FILE="${TARBALL}.sha256.txt"
curl -fL --retry 3 --progress-bar -o "$CHECKSUM_FILE" "https://www.cpan.org/src/5.0/$CHECKSUM_FILE"
EXPECTED=$(tr -d '\n\r' < "$CHECKSUM_FILE")
printf '%s %s\n' "$EXPECTED" "$TARBALL" | sha256sum -c -
SOURCE_DIR="${TARBALL%.tar.gz}"
rm -rf "$SOURCE_DIR"
tar -xzf "$TARBALL"
cd "$SOURCE_DIR"
./Configure -des -Dprefix="$INSTALL_PREFIX"
make -j$(nproc)
make test
sudo make install
NEW_VERSION=$($INSTALL_PREFIX/bin/perl -v | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+' | head -n 1)
echo "$(date): Обновлено до $NEW_VERSION" >> "$LOG_FILE"
echo "Perl успешно обновлён до $NEW_VERSION"
EOF
chmod +x ~/perl-build/update-perl.sh
Запуск обновления:
~/perl-build/update-perl.sh
7. ⚠️ Решение типичных проблем
7.1 Ошибка: cpan: command not found
Симптом: cpan не найден, хотя perl -v работает.
Причина: Установлен только базовый пакет perl-base.
Решение: Установите полный пакет:
sudo apt install perl -y
7.2 Конфликт версий: после source-сборки показывает старый Perl
Симптом: Вы собрали Perl из исходников, но perl -v показывает старую версию (из APT).
Причина: Ваш shell находит бинарный файл в /usr/bin (APT-версия) раньше, чем в /usr/local/bin (source-сборка).
Пошаговое решение:
Шаг 1: Проверьте, какой бинарный файл используется:
which perl
Шаг 2: Если выводит /usr/bin/perl, измените порядок PATH:
export PATH=/usr/local/bin:$PATH
echo 'export PATH=/usr/local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Шаг 3: Проверьте снова:
which perl
✅ Ожидаемый вывод: /usr/local/bin/perl
7.3 Ошибка компиляции: libperl.so: cannot open shared object file
Симптом: При компиляции модулей или запуске скриптов ошибка о том, что libperl.so не найдена.
Причина: Библиотеки Perl из source-сборки не в LD_LIBRARY_PATH.
Решение: Добавьте путь к библиотекам:
echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
7.4 Ошибка: /usr/bin/perl: bad interpreter: No such file or directory
Симптом: Скрипт с шебангом #!/usr/bin/perl не работает.
Причина: В системе нет Perl по пути /usr/bin/perl (только source-сборка в /usr/local/bin).
Решение: Измените шебанг в скрипте на #!/usr/bin/env perl или создайте симлинк:
sudo ln -s /usr/local/bin/perl /usr/local/bin/perl
8. ❌ Удаление Perl
Удаление APT-версии
sudo apt remove perl -y
sudo apt autoremove -y
Примечание: Пакет perl-base (базовый интерпретатор) не удалится, так как он нужен системе.
Удаление source-сборки
cd /usr/local
sudo rm -rf bin/perl bin/cpan lib/perl5 share/man/man1/perl*
Или используйте лог установки (если сохранили):
grep '^ /usr/local/' ~/perl-build/perl-install.log | sed 's/^ //' | sudo xargs -r rm -f
sudo rm -rf ~/perl-build
Проверка удаления
which perl
✅ Ожидаемый вывод: /usr/bin/perl (системная версия).
9. 📝 Чек-лист: всё готово к работе
- [ ] Система обновлена (
sudo apt update && sudo apt upgrade -y) - [ ] Выбран и выполнен один из способов установки (APT / Source)
- [ ]
perl -vпоказывает ожидаемую версию - [ ]
cpanдоступен (для APT — после установки полного пакета) - [ ] Тестовый скрипт работает (
./hello.plвыводитHello, world!) - [ ] (Для source-сборки)
which perlпоказывает/usr/local/bin/perl
Заключение
Вы установили Perl на Debian. Если вы выбрали APT — получили стабильную, проверенную версию, которая будет обновляться вместе с системой. Если собрали из исходников — получили самую свежую версию, которую можно обновлять скриптом из раздела 6. Perl — это мощный язык для обработки текста, написания скриптов автоматизации и поддержки старых приложений.
Что дальше:
- Установите дополнительные модули через
cpan(например,cpan install JSON) - Изучите официальную документацию:
perldoc perl - Напишите скрипт для парсинга логов с использованием регулярных выражений
- Если вы работаете с базами данных, установите
libdbd-mysql-perlилиlibdbd-pg-perl