Откат одного пакета: nvidia, mesa, wireplumber, ядро
Сломался один пакет после обновления, откатывать всю систему не нужно. Достаточно вернуть рабочую версию этого пакета командой sudo pacman -U /var/cache/pacman/pkg/имя-версия.pkg.tar.zst. Ниже четыре реальных кейса: драйвер NVIDIA, mesa, wireplumber и ядро. Для каждого: команды, порядок действий и подводные камни.
Как откатить один пакет?
Откат одного пакета это установка старой версии поверх текущей. Pacman не умеет выбирать версию из репозитория: команды pacman -S пакет=1.2.3 не существует. Поэтому старую версию берут из файла .pkg.tar.zst и ставят командой pacman -U:
sudo pacman -U /var/cache/pacman/pkg/nvidia-570.133.07-1-x86_64.pkg.tar.zst
Pacman проверит подписи, заменит файлы и вернёт пакет к указанной версии. Конфиги не трогаются, зависимости пересчитываются автоматически. Никаких дополнительных действий не нужно.
Откуда брать старую версию? Два источника.
Первый: кэш pacman /var/cache/pacman/pkg. Туда попадает каждый скачанный пакет, поэтому после обновления там лежит и старая, и новая версия. Найти нужную:
ls /var/cache/pacman/pkg/ | grep nvidia
Второй: Arch Linux Archive на archive.archlinux.org. Там хранятся все когда-либо опубликованные версии пакетов. Если кэш почистили или нужной версии в нём нет, качаешь файл оттуда и ставишь той же командой pacman -U. Подробнее про оба источника в статьях «Установка конкретной версии пакета из кэша» и «Arch Linux Archive: откат пакетов».
Общий алгоритм для всех случаев один: определи, какой пакет сломался, найди рабочую версию, откати её, заблокируй от повторного обновления. Полный разбор общего сценария в статье «Сломалось после обновления: единый гайд по откату».
Как понять, что сломался именно один пакет?
Перед откатом убедись, что проблема локальная. Если после pacman -Syu не грузится система или ошибки сыплются от десятка программ, дело в конфликте версий библиотек, и откат одного пакета не поможет. Если же сломалось одно конкретное: пропал звук, упал FPS, не стартует драйвер, виновник один.
Смотри журнал загрузки:
journalctl -b -p 3
Ошибки уровня error и выше покажут, какой компонент падает. Потом сопоставь его с недавними обновлениями из /var/log/pacman.log: там видно, что ставилось прямо перед поломкой. Как читать лог pacman, разобрано в статье «Читаем логи обновлений».
Кейс 1: NVIDIA сломался после обновления драйвера
Симптомы: после pacman -Syu чёрный экран при старте, Xorg или Wayland не запускается, nvidia-smi падает с ошибкой про версию ядра.
Чаще всего виновата пара «драйвер + ядро». Модуль nvidia собирается под конкретную версию ядра. Если ядро обновилось, а модуль не пересобрался, драйвер не загрузится, и графическая сессия не стартует. Проверь:
nvidia-smi
Если команда ругается на несовпадение версий, откатывай драйвер:
sudo pacman -U /var/cache/pacman/pkg/nvidia-570.133.07-1-x86_64.pkg.tar.zst
Если вместе с драйвером обновилось ядро, откатывай и его, и заголовки. Иначе модуль не соберётся под старую версию ядра:
sudo pacman -U /var/cache/pacman/pkg/linux-6.12.arch1-1-x86_64.pkg.tar.zst /var/cache/pacman/pkg/linux-headers-6.12.arch1-1-x86_64.pkg.tar.zst
sudo mkinitcpio -P
mkinitcpio -P пересоберёт initramfs для всех установленных ядер. Без этого система может не загрузиться после отката ядра.
Кейс 2: mesa, падение FPS и артефакты
Симптомы: после обновления FPS в играх упал в два раза, на экране артефакты, игры падают с ошибками рендера. Виновата обычно свежая версия mesa: графического стека для AMD и Intel.
Откат:
sudo pacman -U /var/cache/pacman/pkg/mesa-24.3.4-1-x86_64.pkg.tar.zst
Тут важный нюанс. Mesa тянет за собой библиотеки: libglvnd, vulkan-radeon, vulkan-intel, mesa-utils. Если откатить только mesa, а библиотеки оставить новыми, возможен конфликт версий: приложения будут ходить в старую mesa через новые библиотеки и падать. Поэтому откатывай весь набор разом:
sudo pacman -U /var/cache/pacman/pkg/mesa-24.3.4-1-x86_64.pkg.tar.zst /var/cache/pacman/pkg/libglvnd-1.7.0-2-x86_64.pkg.tar.zst
Как понять, что откатывать вместе? Смотри зависимости пакета:
pactree mesa
Или откати только mesa, проверь, работает ли, и добавляй библиотеки по одной, если что-то падает.
Кейс 3: wireplumber, пропал звук или Bluetooth
Симптомы: после обновления пропал звук, Bluetooth-наушники не подключаются, wpctl status показывает пустой список устройств. Wireplumber: менеджер сессий для PipeWire. Его свежая версия иногда ломает связку с PulseAudio-совместимым слоем, и звук пропадает целиком.
Откат:
sudo pacman -U /var/cache/pacman/pkg/wireplumber-0.5.8-1-x86_64.pkg.tar.zst
После отката перезапусти звуковой стек:
systemctl --user restart wireplumber pipewire pipewire-pulse
Если звук вернулся, а следующее обновление снова тянет новую версию, заблокируй пакет на время (см. ниже). Через пару недель, когда выйдет исправленная версия, сними блокировку и обновись.
Кейс 4: ядро, зависания после обновления
Симптомы: система зависает через несколько минут после загрузки, тормозит, падает в emergency mode. Откат ядра, самый ответственный случай: откатывать нужно и ядро, и заголовки, и пересобирать initramfs.
sudo pacman -U /var/cache/pacman/pkg/linux-6.12.arch1-1-x86_64.pkg.tar.zst /var/cache/pacman/pkg/linux-headers-6.12.arch1-1-x86_64.pkg.tar.zst
sudo mkinitcpio -P
Если система вообще не грузится, загрузись со старым ядром из меню GRUB, пункт «Advanced options for Arch Linux», и откатывай уже из рабочей системы. Полный разбор в статье «Зависание после обновления ядра».
Как заблокировать откаченный пакет от повторного обновления?
После отката pacman -Syu снова поставит свежую версию, и проблема вернётся. Чтобы этого не случилось, добавь пакет в IgnorePkg в /etc/pacman.conf:
# /etc/pacman.conf
IgnorePkg = nvidia mesa wireplumber
Теперь pacman -Syu пропускает эти пакеты и оставляет текущие версии. Когда выйдет исправленная версия, убери строку и обновись.
Важно: замораживать библиотеки вроде glibc или python нельзя, система скатится в частичное обновление и развалится. Игнорировать можно только «листовые» пакеты: драйверы, ядра, приложения.
Какие подводные камни у отката одного пакета?
Главный риск: конфликт версий библиотек. Пакет зависит от библиотеки с определённым soname, именем, в которое зашита версия ABI. Если откатить пакет, а библиотеку оставить новой, приложение может не найти нужный символ и упасть с ошибкой вроде undefined symbol.
Пример: откатил mesa, а libglvnd остался новым. Приложения, собранные против старой mesa, могут падать при старте. Поэтому правило простое: откатывай пакет вместе с его библиотеками, а не по одному. Проверяй зависимости через pactree перед откатом.
Второй момент: откат не трогает конфиги. Если проблема в конфигурации, а не в версии пакета, откат не поможет. Проверь логи до отката: journalctl -b -p 3 покажет, что именно падает, а /var/log/pacman.log, что обновилось перед поломкой.
Третий момент: откат не отменяет обновление в будущем. Через неделю-две выйдет исправленная версия, и её стоит поставить. Держать пакет замороженным месяцами не нужно: он разойдётся с остальной системой, и откат понадобится снова.
Частые вопросы
Что делать, если нужной версии нет в кэше?
Качай её из Arch Linux Archive. На archive.archlinux.org в каталоге packages/ лежат все версии всех пакетов. Скачай файл .pkg.tar.zst и поставь через pacman -U. Инструкция по поиску и установке в статье про Arch Linux Archive.
Нужно ли откатывать зависимости вместе с пакетом?
Зависит от пакета. Для приложений обычно достаточно откатить сам пакет. Для графического стека и библиотек откатывай всё разом, иначе возможен конфликт версий. Проверяй зависимости через pactree.
Как понять, какой пакет сломался?
Смотри /var/log/pacman.log: там видно, что обновилось прямо перед поломкой. Потом сопоставь с ошибками из journalctl -b -p 3. Обычно виновник находится за пару минут.
Откат: это навсегда?
Нет. Откат, временная мера, чтобы вернуть рабочую систему. Когда выйдет исправленная версия, сними блокировку из IgnorePkg и обновись. Держать пакет замороженным годами не стоит: рано или поздно он разойдётся с остальной системой.
Полезные ресурсы
- Downgrading packages (ArchWiki): официальная инструкция по откату пакетов в Arch Linux.
Заключение
Откат одного пакета, самый быстрый способ вернуть рабочую систему после неудачного обновления. Найди старую версию в кэше или в Arch Linux Archive, поставь её через pacman -U, заблокируй от повторного обновления через IgnorePkg. Через пару недель сними блокировку и обновись: скорее всего, проблема уже исправлена.
Не получилось? Поможем настроить
Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Комментарии