Pacman: команды для установки, обновления и обслуживания пакетов
Pacman в Arch Linux обновляет систему командой sudo pacman -Syu, ставит программы через -S, удаляет через -Rns и ищет по базе через -Q. Ниже собраны рабочие команды для pacman 7.x, правила безопасного обновления, очистка кэша без потери возможности отката и разбор частых ошибок.

Содержание
Как устроен pacman и что изменилось к 2026 году
Pacman - штатный менеджер пакетов Arch Linux и производных вроде EndeavourOS, Manjaro и SteamOS. Он скачивает пакеты из репозиториев core, extra и multilib, сам разрешает зависимости и ведёт локальную базу установленного. Синтаксис у него короткий: одна заглавная буква задаёт операцию, строчные уточняют её.
-S(sync) - работа с репозиториями: установка, поиск, обновление;-R(remove) - удаление;-Q(query) - запросы к базе установленных пакетов;-U(upgrade) - установка из локального файла или по ссылке;-F(files) - поиск по содержимому пакетов в репозиториях.
С 2021 года вышли версии 7.0 (июль 2024) и 7.1 (ноябрь 2025), 7.1 и сейчас стоит в установочных образах Arch. Самое заметное изменение седьмой ветки - загрузка пакетов от отдельного непривилегированного пользователя, это задаётся параметром DownloadUser в /etc/pacman.conf. Если вы обновлялись со старой системы, pacman мог оставить рядом файл pacman.conf.pacnew: его стоит сравнить с рабочим конфигом, об этом ниже.
Все команды, которые что-то меняют в системе, выполняются через sudo. Запросы к базе (-Q, -Ss, -Si) работают и от обычного пользователя. Как то же самое делается в Debian и Fedora, сравнивали в обзоре способов установки программ в Linux.
Обновление системы: только -Syu
В старой версии статьи первой шла команда pacman -Sy для "обновления списков пакетов". Сейчас так делать не советуют ни разработчики Arch, ни ArchWiki. Если обновить базы и затем поставить один пакет без обновления остальных, получится частичное обновление: новая программа потянет новые библиотеки, а старые программы, собранные под прежние версии, перестанут запускаться.
Правило простое: базы и пакеты обновляются вместе.
sudo pacman -Syu
# принудительно перечитать базы со всех зеркал, если зеркало было устаревшим
sudo pacman -Syyu

Перед крупным обновлением загляните в новости на archlinux.org: туда пишут о случаях, когда нужно ручное вмешательство. Если обновление падает с ошибкой подписи (invalid or corrupted package), чаще всего устарел пакет с ключами. Обновите его первым, а потом всю систему:
sudo pacman -Sy archlinux-keyring
sudo pacman -Su
Это единственный случай, когда -Sy отдельно от полного обновления оправдан, и то только если сразу за ним идёт -Su.
Поиск, информация и установка пакетов
Поиск идёт по именам и описаниям, можно использовать регулярные выражения:
pacman -Ss mpv
pacman -Si mpv
-Ss выводит список совпадений с пометкой installed для уже установленных, -Si показывает подробности из репозитория: версию, размер, зависимости, лицензию.


Установка одной или нескольких программ:
sudo pacman -S mpv
sudo pacman -S mpv yt-dlp ffmpeg
# пропустить уже установленные пакеты
sudo pacman -S --needed base-devel git
Для группы пакетов вроде base-devel pacman предложит выбрать, какие её члены ставить. Если хотите установить пакет из локального файла, например собранный вручную или взятый из кэша, используйте -U:
sudo pacman -U ./mpv-1:0.39.0-1-x86_64.pkg.tar.zst
Имя файла выше условное, подставьте своё. Пакетов, которых нет в официальных репозиториях, pacman не знает: для них есть AUR и помощники вроде yay и paru, о правилах безопасности при работе с ними мы писали в статье про AUR в Arch Linux.
Удаление пакетов и осиротевших зависимостей
Команда -R сама по себе удаляет только указанный пакет. Обычно удобнее сразу убрать и зависимости, которые больше никому не нужны:
sudo pacman -Rs mpv
# вместе с системными конфигами, без файлов .pacsave
sudo pacman -Rns mpv

При обычном удалении изменённые вами файлы из /etc сохраняются с расширением .pacsave. Флаг -n удаляет их сразу. Настройки в домашнем каталоге (~/.config) pacman не трогает никогда.
Сироты
Со временем в системе копятся пакеты, которые ставились как зависимости, а потом стали не нужны. Посмотреть и удалить их:
pacman -Qdt
pacman -Qdtq | sudo pacman -Rns -
Вариант с конвейером лучше старого pacman -Rns $(pacman -Qdtq): если сирот нет, он не выдаст ошибку о пустом списке. Перед удалением всё же просмотрите список. Иногда туда попадает то, что вы ставили руками как зависимость, и тогда пакет стоит пометить как явно установленный: sudo pacman -D --asexplicit имя.

Что установлено: запросы -Q и -F
Запросы ничего не меняют, поэтому sudo не нужен.
pacman -Q # все установленные пакеты
pacman -Qe # установленные явно, без зависимостей
pacman -Qm # не из репозиториев (AUR, ручные сборки)
pacman -Qs mpv # поиск среди установленных
pacman -Ql mpv # файлы пакета
pacman -Qo /usr/bin/mpv # какому пакету принадлежит файл
pacman -Qkk mpv # проверить, не изменены ли файлы пакета

Если нужно узнать, в каком пакете лежит файл, которого у вас ещё нет, используйте базу файлов. Её надо один раз загрузить:
sudo pacman -Fy
pacman -F libGL.so.1
Это выручает, когда программа из AUR или игра ругается на отсутствующую библиотеку: -F назовёт пакет, который её содержит.

Шпаргалка по основным флагам
| Задача | Команда | Замечание |
|---|---|---|
| Обновить систему | pacman -Syu | Всегда целиком, без -Sy отдельно |
| Установить пакет | pacman -S имя | С --needed пропускает установленные |
| Установить файл | pacman -U файл.pkg.tar.zst | Работает и с URL |
| Удалить с зависимостями | pacman -Rns имя | Конфиги в /etc тоже удаляются |
| Найти в репозитории | pacman -Ss слово | Поддерживает регулярные выражения |
| Чей это файл | pacman -Qo путь | Для неустановленных: pacman -F |
| Только скачать | pacman -Sw имя | Пакет попадёт в кэш |
| Почистить кэш | paccache -r | Из пакета pacman-contrib |
Кэш в /var/cache/pacman/pkg и откат версии
Каждый скачанный пакет остаётся в /var/cache/pacman/pkg/. На активно обновляемой системе этот каталог за год вырастает до десятков гигабайт. У pacman есть встроенная очистка:
sudo pacman -Sc # удалить пакеты, которые сейчас не установлены
sudo pacman -Scc # удалить из кэша вообще всё

Обе команды грубоваты: после -Scc откатиться на прошлую версию будет не из чего. Удобнее paccache из пакета pacman-contrib, который хранит несколько последних версий:
sudo pacman -S pacman-contrib
sudo paccache -r # оставить по три версии каждого пакета
sudo paccache -rk1 # оставить одну
sudo paccache -ruk0 # убрать все версии удалённых пакетов
sudo systemctl enable --now paccache.timer # чистить раз в неделю
Не спешите чистить кэш сразу после большого обновления. Если новая версия драйвера или ядра оказалась с ошибкой, старый пакет из кэша возвращается одной командой: sudo pacman -U /var/cache/pacman/pkg/имя-старой-версии.pkg.tar.zst. Когда в кэше пусто, ищите нужную версию в Arch Linux Archive.
Чтобы откатанный пакет не обновился снова при следующем -Syu, временно добавьте его в строку IgnorePkg в /etc/pacman.conf и не забудьте убрать оттуда, когда исправление выйдет. Где ещё искать лишние гигабайты, разобрано в статье о том, как освободить место на диске.
pacman.conf, файлы .pacnew и частые ошибки
Основные настройки лежат в /etc/pacman.conf. Что стоит проверить:
ParallelDownloads = 5- параллельная загрузка, в свежих конфигах уже включена;Color- цветной вывод, просто раскомментируйте строку;- секция
[multilib]- 32-битные библиотеки для Steam и Wine; DownloadUser = alpha- загрузка без прав root, появилась в pacman 7.
Когда пакет приносит новую версию конфига, а вы свой меняли, pacman не перезаписывает его и кладёт рядом файл .pacnew. Найти и сравнить такие файлы помогает pacdiff из того же pacman-contrib:
sudo DIFFPROG="diff -u" pacdiff
Если pacman пишет "unable to lock database"
Значит, другой экземпляр pacman работает или прошлый запуск оборвался. Сначала убедитесь, что pacman действительно не запущен (pgrep pacman), и только тогда удалите блокировку: sudo rm /var/lib/pacman/db.lck.
Если "conflicting files" или "exists in filesystem"
В системе уже лежит файл, который принадлежит новому пакету. Проверьте командой pacman -Qo, чей он. Если ничей (остался от ручной установки), удалите или переименуйте его. Флаг --overwrite применяйте только по прямой рекомендации из новостей Arch.
Медленные или устаревшие зеркала лечатся утилитой reflector, а на Btrfs перед обновлением удобно делать снимки, как описано в статье про Snapper. Полный справочник флагов и параметров есть в ArchWiki и в man pacman.
Частые вопросы
Чем pacman -Syu отличается от pacman -Syyu?
Двойная y заставляет pacman заново скачать базы со всех репозиториев, даже если они кажутся свежими. Это нужно после смены зеркала или если зеркало отдавало устаревшие данные. В обычном обновлении хватает одной y.
Можно ли запускать pacman -Sy перед установкой пакета?
Не нужно. Связка -Sy и -S имя приводит к частичному обновлению, которое Arch не поддерживает. Если базы устарели и пакет не скачивается, выполните полное sudo pacman -Syu, а потом ставьте программу.
Как откатить пакет на предыдущую версию?
Установите старую версию из кэша командой sudo pacman -U /var/cache/pacman/pkg/файл.pkg.tar.zst. Если её там нет, файл можно скачать из Arch Linux Archive. Чтобы пакет не обновился сразу же, добавьте его в IgnorePkg.
Сколько места можно освободить очисткой кэша?
Зависит от того, как давно кэш не чистили. Посмотреть размер можно командой du -sh /var/cache/pacman/pkg. Безопаснее всего paccache -r, который оставляет три последние версии каждого пакета.
Работают ли эти команды в Manjaro и EndeavourOS?
Да, это тот же pacman. В Manjaro свои репозитории с задержкой относительно Arch, а для графического управления там есть Pamac, но консольные команды совпадают.
Документация и источники
- pacman, ArchWiki, 2026
- pacman(8) manual page, Arch Linux, 2026
- pacman/Tips and tricks, ArchWiki, 2026
- System maintenance, ArchWiki, 2026
Читайте также
Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.