Как установить старые пакеты в debian, ubuntu, centos на примере php
Иногда бывает нужно установить старую версию какого-либо пакета. Самый простой (хоть и неправильный) путь это скачать нужную версию и установить ее вручную, но тогда придется самостоятельно разбираться с огромным количеством зависимостей. Поэтому самый правильный путь – это прописать дополнительные репозитории и настроить исключения для нужных пакетов.
В данной статье будем понижать версию PHP с 5.4.x до 5.3.x
Для начала нам нужно добавить репозитории, в которых есть нужная версия пакета.
Узнать какая версия пакета в какой ветке дистрибутива можно на сайте https://www.debian.org/distrib/packages
Мы будем ставить пакет PHP из дистрибутива squeeze (в более новых ветках используется PHP 5.4.x)
Чтобы добавить нужные репозитории открываем /etc/apt/sources.list
И добавляем в конец репозитории:
deb http://mirror.yandex.ru/debian/ squeeze main
Теперь нам нужно зафиксировать версии пакетов, чтобы не ставились более новые. Для этого мы укажем в файле /etc/apt/preferences.d/preferences из какого репозитория брать нужные нам пакеты.
Pin: release a=oldstable
Pin-Priority: 700
Package: libapache2-mod-php5
Pin: release a=oldstable
Pin-Priority: 700
Package: *
Pin: release a=stable
Pin-Priority: 600
Для понижения версии 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 и все готово.
или в более новых версиях
service apache2 restart
P.S. Полезные команды:
Посмотреть версии всех пакетов, установленных в системе:
Посмотреть доступные версии в репозиториях:
просто установить нужную версию:
где:
php5 – имя пакета
5.3.3-7+squeeze19 – версия.
Удалить пакет вместе с файлами конфигурации:
P.S.
По умолчанию PHP для апача состоит из пакетов:
php5
php5-cgi
php5-cli
php5-common
php5-gd
php5-mcrypt
php5-mysql
php5-suhosin
Если конфигурация более сложная, то нужно проверять зависимости пакетов. Иначе они все могут не установиться. Посмотреть зависимости пакета можно командой:
1 |
|
На этом статья заканчивается. Удачной установки нужных пакетов. Любые другие пакеты ставятся по аналогии.
Спасибо, что рассказали как устанавливать пакеты в debian