Установка старых пакетов в Linux Debian на примере PHP

Иногда бывает нужно установить старую версию какого-либо пакета. Самый простой (хоть и неправильный) путь это скачать нужную версию и установить ее вручную, но тогда придется самостоятельно разбираться с огромным количеством зависимостей. Поэтому самый правильный путь — это прописать дополнительные репозитории и настроить исключения для нужных пакетов.

В данной статье будем понижать версию PHP с 5.4.x до 5.3.x

Для начала нам нужно добавить репозитории, в которых есть нужная версия пакета.
Узнать какая версия пакета в какой ветке дистрибьютива можно на сайте https://www.debian.org/distrib/packages

Мы будем ставить пакет PHP из дистрибьютива squeeze (в более новых ветках используется PHP 5.4.x)

Чтобы добавить нужные репозитории открываем /etc/apt/sources.list

И добавляем в конец репозитории:

Теперь нам нужно зафиксировать версии пакетов, чтобы не ставились более новые. Для этого мы укажем в файле /etc/apt/preferences.d/preferences из какого репозитория брать нужные нам пакеты.

Для понижения версии PHP нам потребуются все пакеты, которые начинаются с php5, а так же libapache2-mod-php5.
Объяснение строк:

Package: php5* — пакеты, которые попадают под маску php5*
Pin: release a=oldstable — берутся из репозиториев предыдущей версии дистрибьютива (Можно зафиксировать текущую версию и запретить ее изменять. Для этого нужно написать Pin: version 5.3.3-7+squeeze19, где 5.3.3-7+squeeze19 — это версия пакета).
Pin-Priority: 700 — приоритет установки. Чем больше — тем предпочтительней правило.

Таким же образом выдаем указания для пакета (libapache2-mod-php5) и для всех остальных (*).

Теперь обновляем информацию в apt:

и устанавливаем наши пакеты:

Теперь остается перезапустить Apache и все готово.

P.S.
Полезные команды:
Посмотреть версии всех пакетов, установленных в системе:

Посмотреть доступные версии в репозиториях:

просто установить нужную версию:

где:
php5 — имя пакета
5.3.3-7+squeeze19 — версия.

Удалить пакет вместе с файлами конфигурации:

P.P.S.
По умолчанию PHP для апача состоит из пакетов:

Если конфигурация более сложная, то нужно проверять зависимости пакетов. Иначе они все могут не установиться.

Посмотреть зависимости пакета можно командой:

На этом статья заканчивается. Удачной установки нужных пакетов. Любые другие пакеты ставятся по аналогии.

Заказать создание и поддержку безопасной IT-инфраструктуры любой сложности

Быть уверенным в своей IT-инфраструктуре — это быть уверенным в завтрашнем дне.

Для того, чтобы сделать заказ:

Заполните форму обратной связи и мы обязательно с вам свяжемся:
Форма обратной связи
Позвоните нам по телефону:
+7(909)952-44-33
Напишите нам на электронную почту:
order@blackdiver.net
Напишите нам в Telegram:
Telegram
Другие способы связи Вы сможете найти в разделе Контакты.