Downgrading packages (російський)

У цьому посібнику описано процес відкату встановленого пакета до його попередньої версії. Відкат версії пакету не рекомендується і застосовується в тому випадку, коли в поточному пакеті виявлено помилку.

Процес відкоту (зниження) версії пакету полягає у видаленні поточної версії пакету та встановлення замість неї попередньої. Відкат може виконуватися як до попередньої версії, так і до будь-якої доступної.

Причини зниження версії (серед інших) можуть бути наступні: помилка в поточній версії, відсутність необхідної функціональності або установка пакета з метою експерименту. У будь-якому з цих випадків користувачеві, можливо, буде менш проблематично повернутися до старої версії пакету, ніж очікувати нового релізу.

Відкат версії одного пакета може спричинити за собою необхідність зниження версій інших пакетів. При наявності великої кількості експериментальних і тестових пакетів, а також відредагованих конфігураційних файлів повна перевстановлення системи може виявитися кращим відкату версій.

подробиці

Проте, користувачеві необхідно враховувати такі моменти:

Зараз знаходиться в розробці концепція Машини відкат Arch (Arch Rollback Machine) і при готовності вона буде включена в стандартні засоби pacman. Як тільки це відбудеться, процес стане автоматизованим.

А поки дотримуйтесь даними інструкціями.

Інструкція по відкату пакетів

  • В: Я тільки що виконав pacman -Syu і пакет XYZ з версії М був оновлений до версії N. Оновлення пакета викликає проблеми на моєму комп'ютері, як я можу відкотити версію N до старої версії M?
  • Про: Версію пакета можна знизити елементарно, для цього знайдіть стару версію потрібного пакету в директорії / var / cache / pacman / pkg (якщо раніше не виконувалась pacman -Scc. То потрібний пакет буде там). Якщо пакет є, то його можна встановити, виконавши pacman -U /var/cache/pacman/pkg/pkgname-olderpkgver.pkg.tar.gz. Якщо потрібний пакет був викачаний вручну, то знадобиться вказати повний шлях до пакету.

Ця команда видалить існуючий пакет, перевіривши при цьому все, що змінюються залежно, і встановить більш стару версію пакета.

Примітка: При зміні основних компонентів операційної системи, може виникнути необхідність заміни десятків пакетів на більш старі версії. Або ж пакети можуть у вас просто відсутні, і тоді їх доведеться розшукувати самостійно, стежачи при цьому, щоб при оновленні повторно не були встановлені небажані версії пакетів.

У AUR доступний пакет під назвою downgrade AUR. Це простий скрипт на Bash, який шукає в кеші старі версії пакету. Якщо пакет не буде знайдений, то він може шукати в A.R.M .. Потім потрібно буде вибрати пакет для установки. Тут описані основні можливості пакета по автоматизації процесу. Для отримання додаткової інформації виконайте: downgrade --help.

Також для відкату пакетів ви можете скористатися програмою downgrader AUR - це потужна програма, написана на C ++, працює з логами pacman, кешем пакетів і ARM. Вона допоможе відкотити пакет до попередньої версії за даними з логів, сама знайде, завантажить і встановить потрібний пакет. Також вона вміє працювати з декількома пакетами одночасно, наприклад, якщо система стала нестабільна після великого оновлення. Для отримання додаткової інформації зверніться до цієї теми форуму.

Пошук старих версій

Існує три способи пошуку.

Дзеркала Out-Of-Sync

При відсутності старих версій пакетів, потрібно перевірити, чи не синхронізовані чи одне з дзеркал, і отримати пакет звідти. Натисніть тут, щоб подивитися статус дзеркал.

Також потрібні пакети можна пошукати на цьому дзеркалі:

Re-компіляція пакетів

додаткова інформація

Зміна основних параметрів менеджера пакетів pacman здійснюється за допомогою редагування файлу pacman.conf. для редагувати файли знадобляться права root. Для редагування файлу слід набрати в командному рядку

(Звичайно можна редагувати файл і за допомогою графічних утиліт, наприклад Shaman, але частіше набагато швидше і безпечніше виконувати такі дії з командного рядка.)

Для отримання додаткової інформації вивчіть pacman (Русский).

Я не можу відкинути пакет з-за залежностей.

При оновленні або видаленні за допомогою pacman -Ud pkgpkgname-olderpkgver.pkg.tar.gz. можна ігнорувати залежності, але враховуйте, що в подальшому це може призвести до проблем в системі.

Як я можу заборонити pacman оновлювати деякі пакети?

Додати назву пакета в рядок "IgnorePkg" файлу /etc/pacman.conf. IgnorePkg = package1 package2. в pacman.conf заборонить pacman, при виконанні --sysupgrade. встановлювати оновлення для обраних пакетів.

Я хочу повернутися до вчорашнього стану своєї системи.

Легко можна здійснити при використанні механізму періодичних знімків (snapshots) LVM.

Схожі статті