Як встановити старі пакети в debian, ubuntu, centos на прикладі php
Як встановити старі пакети в debian, ubuntu, centos на прикладі php
Іноді буває потрібно встановити стару версію будь-якого пакета. Найпростіший (хоч і неправильний) шлях це завантажити потрібну версію і встановити її вручну, але тоді доведеться самостійно розбиратися з величезною кількістю залежностей. Тому найправильніший шлях - це прописати додаткові репозиторії і налаштувати виключення для потрібних пакетів.
Ми будемо ставити пакет PHP з дістрібьютіва squeeze (в новіших гілках використовується PHP 5.4.x)
Щоб додати потрібні репозиторії відкриваємо /etc/apt/sources.list
І додаємо в кінець репозиторії:
Тепер нам потрібно зафіксувати версії пакетів, щоб не ставилися більш нові. Для цього ми вкажемо в файлі /etc/apt/preferences.d/preferences з якого сховища брати потрібні нам пакети.
Package: php5 *
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:
і встановлюємо наші пакети: