Іноді свіже оновлення ламає улюблений застосунок — буває. Добра новина: у Snap і Flatpak є інструменти для швидкого відкату, фіксації (pinning) потрібної версії та безпечного тестування новинок. У цій статті я покажу, як це зробити через термінал Linux, а також які є альтернативи і простий GUI-шлях. Все максимально практично і без «танців» 🧰
Що таке відкат і pinning для Snap та Flatpak
Відкат (rollback) — повернення до попереднього випуску застосунку. Pinning — «замороження» версії, щоб уникнути автоматичних оновлень. У Snap це досягається через revert та утримання оновлень, а у Flatpak — через вибір конкретного commit і маскування. Це допомагає контролювати оновлення Linux на ваших умовах.
Підготовка: бекап і тестовий підхід
Перш ніж щось міняти, перевірте встановлені версії та зробіть копію важливих даних застосунку. Дані користувача зазвичай зберігаються в ~/snap/<назва>/current для Snap та ~/.var/app/<AppID> для Flatpak.
# Перевірка встановлених Snap і їх ревізій
snap list --all
# Перевірка каналів і доступних ревізій для конкретного Snap
snap info <назва-snap>
# Список встановлених Flatpak застосунків
flatpak list --app
# Детальний лог версій Flatpak з Flathub
flatpak remote-info --log flathub <AppID>
How-to: Snap — відкат, фіксація та канали
1) Швидкий відкат до попередньої ревізії
Якщо останнє оновлення зламалося, відкотіться на попередню ревізію:
sudo snap revert <назва-snap>
# Перевірка результату
snap list | grep <назва-snap>
Команда revert повертає саме на попередню локально доступну ревізію (ту, що показана в snap list --all як disabled).
2) Закріпити канал/трек (pinning через канал)
Багато Snap мають треки/канали: stable, candidate, beta, edge, або версійні треки на кшталт 1.14/stable. Перемкнувшись на «старший» стабільний трек, ви фактично заморожуєте версію в його межах.
# Перемкнутися на конкретний канал/трек
sudo snap switch --channel=1.14/stable <назва-snap>
# Застосувати оновлення з цього каналу
sudo snap refresh <назва-snap>
3) Тимчасово зупинити автооновлення (hold)
Хочете поставити на паузу автооновлення Linux для конкретного Snap? Використайте утримання:
# Утримати оновлення для одного застосунку
sudo snap refresh --hold <назва-snap>
# Зняти утримання
sudo snap refresh --unhold <назва-snap>
# Глобальна відстрочка оновлень до певного часу
sudo snap set system refresh.hold="$(date -d 'next friday 23:59' --iso=seconds)"
# Перевірити/очистити глобальний hold
snap get system refresh.hold
sudo snap set system refresh.hold=
Це зручно для тестування: ви відкотилися, «заморозили» стан і спокійно перевірили роботу.
How-to: Flatpak — відкат за commit і маска
1) Знайти потрібний commit
Flatpak версії — це конкретні commit-и. Подивіться журнал змін:
# Подивитися історію версій застосунку на Flathub
flatpak remote-info --log flathub <AppID>
# Приклад AppID: org.mozilla.firefox, org.gimp.GIMP
2) Відкотитися до конкретного commit
# Встановити конкретний commit (відкат/даунгрейд)
sudo flatpak update --commit=<COMMIT_SHA> <AppID>
# Перевірити активну версію
flatpak info <AppID>
3) Заблокувати оновлення застосунку (mask)
Щоб зафіксувати версію та уникнути автооновлень:
# Заблокувати (замаскувати) застосунок від оновлень
flatpak mask <AppID>
# Розблокувати, коли будете готові оновитися
flatpak unmask <AppID>
4) Перемкнутися на іншу гілку (branch)
Альтернатива відкату — обрати іншу гілку, наприклад stable чи beta:
flatpak update --app --branch=stable <AppID>
Альтернативні способи і лайфхаки
- Snap: можна завантажити потрібну ревізію як файл і встановити локально (корисно для офлайн-тестів). Обережно: це для досвідчених користувачів.
# Завантажити snap артефакт (можна вказати канал/ревізію)
snap download <назва-snap> --channel=stable
# Встановити локально завантажений файл (не з магазину)
sudo snap install --dangerous <назва>_<rev>.snap
- Flatpak: якщо знаєте commit, можна одразу встановити потрібну версію з Flathub через
--commitабо спочатку інсталювати, потім відкотитися. - Тестування: створіть окремий користувацький профіль або використайте контейнер/VM, щоб перевірити нові версії без ризику для робочого середовища.
GUI-спосіб (коли не хочеться в термінал)
У GNOME Software або KDE Discover для Flatpak ви можете:
- Знайти застосунок → Відкрити сторінку → Обрати гілку/версію (stable/beta), якщо вона доступна.
- Оновлення можна приховати, відмінивши автооновлення для конкретного застосунку у параметрах магазину (залежить від дистрибутива).
У Snap Store (Ubuntu Software) зазвичай доступний вибір каналу (stable/candidate/beta/edge). Повного «revert» у GUI може не бути, тому для точного відкату краще використати термінал Linux.
FAQ
Чи видаляє відкат мої дані застосунку?
Ні. І в Snap, і у Flatpak користувацькі дані зберігаються окремо. Але завжди робіть бекап важливих профілів, це базові поради Linux.
Скільки триває hold у Snap?
snap refresh --hold <назва> тримає застосунок без оновлень, доки не виконаєте --unhold. Глобальний refresh.hold діє до вказаного часу.
Flatpak: не знаходжу потрібний commit
Використайте flatpak remote-info --log flathub <AppID>. Якщо commit прибрали з репозиторію, повернутися саме до нього не вийде — оберіть найближчий стабільний commit або іншу гілку.
Після відкату застосунок не запускається
Спробуйте flatpak repair (для Flatpak) або перевстановлення через той самий канал (для Snap). Також перевірте сумісність плагінів/додатків.
Чи безпечно сидіти на старих версіях?
Лише короткий час. Старі збірки можуть містити вразливості. Рекомендую заморозити версію тільки на період тестування/вирішення багу, а потім оновитися.
Чи впливає pinning на інші пакети?
Ні, ці дії працюють по застосунку. Виняток — глобальний таймер Snap, який паузить усі автооновлення.
Порада від Kernelka
Створіть міні-процес: перед кожним великим апдейтом робіть «контрольний знімок» — зафіксуйте канал/гілку, збережіть номер ревізії або commit, перевірте роботу після апдейту. Якщо щось зламається — ви знаєте, як швидко відкотитися 😉
Підсумок
- Snap: використовуйте
snap revertдля миттєвого відкату,snap switch --channelдля стабільної гілки таsnap refresh --holdдля pinning. - Flatpak: знайдіть commit через
remote-info --log, відкотітьсяupdate --commitі закріпіть версіюflatpak mask. - GUI допомагає перемикати канали/гілки, але точніший контроль — у терміналі.
- Бекап даних і короткострокове заморожування — ваші головні «страхувальні пояси» під час оновлення Linux.

Прокоментувати
На сайті відображається лише твоє ім'я та коментар. Електронна пошта зберігається виключно для зв'язку з тобою за потреби та в жодному разі не передається стороннім особам.