LinuxRuLinux без лишней теории
Arch Linux

Pacman: команды для установки, обновления и обслуживания пакетов

Редакция LinuxRu7 мин чтенияИнструкции

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

Pacman: команды для установки, обновления и обслуживания пакетов
Содержание
  1. Как устроен
  2. Обновление
  3. Поиск и установка
  4. Удаление
  5. Запросы к базе
  6. Шпаргалка
  7. Кэш пакетов
  8. Настройка и ошибки
  9. Частые вопросы

Как устроен 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
Вывод команды pacman -Syu со списком обновляемых пакетов
Полное обновление системы командой pacman -Syu

Перед крупным обновлением загляните в новости на 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 показывает подробности из репозитория: версию, размер, зависимости, лицензию.

Результаты поиска пакета mpv командой pacman -Ss
Поиск пакета в репозиториях
Подробная информация о пакете mpv: версия, зависимости, размер
Информация о пакете из базы репозитория

Установка одной или нескольких программ:

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
Удаление пакета mpv с зависимостями командой pacman -Rs
Удаление пакета с ненужными зависимостями

При обычном удалении изменённые вами файлы из /etc сохраняются с расширением .pacsave. Флаг -n удаляет их сразу. Настройки в домашнем каталоге (~/.config) pacman не трогает никогда.

Сироты

Со временем в системе копятся пакеты, которые ставились как зависимости, а потом стали не нужны. Посмотреть и удалить их:

pacman -Qdt
pacman -Qdtq | sudo pacman -Rns -

Вариант с конвейером лучше старого pacman -Rns $(pacman -Qdtq): если сирот нет, он не выдаст ошибку о пустом списке. Перед удалением всё же просмотрите список. Иногда туда попадает то, что вы ставили руками как зависимость, и тогда пакет стоит пометить как явно установленный: sudo pacman -D --asexplicit имя.

Удаление осиротевших пакетов в Arch Linux
Очистка осиротевших зависимостей

Что установлено: запросы -Q и -F

Запросы ничего не меняют, поэтому sudo не нужен.

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

Если нужно узнать, в каком пакете лежит файл, которого у вас ещё нет, используйте базу файлов. Её надо один раз загрузить:

sudo pacman -Fy
pacman -F libGL.so.1

Это выручает, когда программа из AUR или игра ругается на отсутствующую библиотеку: -F назовёт пакет, который её содержит.

Список файлов пакета mpv в выводе pacman -Ql
Файлы, которые установил пакет

Шпаргалка по основным флагам

ЗадачаКомандаЗамечание
Обновить систему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   # удалить из кэша вообще всё
Очистка кэша пакетов командой pacman -Sc
Очистка кэша встроенными средствами pacman

Обе команды грубоваты: после -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, но консольные команды совпадают.

Документация и источники

Читайте также

Команды проверены на актуальных версиях дистрибутивов на момент обновления. Перед изменением системных настроек сделайте резервную копию.