Язык программирования PHP существует уже третье десятилетие и более десяти лет яляется одним из самых популярных языков для создания web-приложений. Несмотря на богатый функционал "из коробки" существует как минимум два каталога библиотек для PHP: PEAR и PECL. В первом содержатся дополнительные библиотеки, написанные на PHP, во втором - модули PHP, написанные на C.
Вместе с PHP поставляются утилиты pecl и pear, упрощающие работу с этими каталогами. Единственный минус этих утилит в том, что они действуют в обход пакетных менеджеров дистрибутивов Linux, что усложняет управление и может нарушить стабильность системы. К счастью как минимум для Debian и Ubuntu есть решение, которое решает эту проблему. Оно и будет рассмотрено далее.
Подготовка к установке
В Ubuntu вплоть до 14.04 и Debian вплоть до Jessie присутствовал пакет dh-make-php (во многом похожий по смыслу на dh-make-perl для perl CPAN), который достаточно было установить командой:
apt-get install dh-make-php
В более новых версиях дистрибутивов его нет, но пользователь github с ником Avature создал форк dh-make-php и поддерживает в актуальном состоянии. Для установки надо склонировать репозиторий:
git clone https://github.com/Avature/dh-make-php.git
Затем соберём пакет командой:
cd dh-make-php/ && dpkg-buildpackage -rfakeroot
В процессе сборки могут быть сообщения о неудовлетворённых зависимостях. Для решения проблемы достаточно поставить недостающие пакеты с помощью apt-get и перезапустить сборку. После сборки установим пакет:
sudo dpkg -i ../dh-make-php_*.deb
После установки пакета в системе появятся две команды:
- dh-make-pear: вспомогательная утилита для сборки пакетов из репозитория PEAR.
- dh-make-pecl: вспомогательная утилита для сборки пакетов из репозитория PECL.
Установка модуля из PECL
Рассмотрим работу с обеими из них. Для начала попробуем поставить библиотеку amqp из PECL. Скачаем и подготовим исходный код:
dh-make-pecl amqp
После скачивания и подготовки исходный код будет размещён в директории php-<имя_модуля>-<версия>. В данном примере это "php-amqp-1.9.3". Сборка подготовленных исходников и установка пакета выполняются обычным для Debian и Ubuntu способом:
cd php-amqp-1.9.3 && dpkg-buildpackage -rfakeroot -b && sudo dpkg -i ../php-amqp_*.deb
Далее остаётся только включить модуль:
phpenmod amqp
Установка модуля из PEAR
Переходим к установке модулей из PEAR. Для теста будем устанавливать библиотеку MDB2. Здесь всё тоже самое: скачиваем и подготавливаем исходный код:
dh-make-pear mdb2
После скачивания и подготовки исходный код так же будет размещён в директории php-<имя_модуля>-<версия>. В данном примере это "php-mdb2-2.4.1". Собираем и устанавливаем пакет:
cd php-mdb2-2.4.1 && dpkg-buildpackage -rfakeroot -b && dpkg -i ../php-mdb2_*.deb
Заключение
С помощью утилит из пакета dh-make-php можно существенно упростить установку и обновление расширений для PHP. И очень хорошо что нашлись энтузиасты, которые продолжили развитие проекта, после того как его автор забросил разработку.