Настройка pacman#

Основные команды для управления пакетами#

Ниже в таблице перечислены все основные команды pacman и другие, которые часто будут встречаться на протяжении всего руководства. Их лучше запомнить.

Список часто используемых команд#

Команда

Описание

sudo pacman -S название_пакета

Устанавливает пакет официальных из репозиториев.

sudo pacman -Syu

Выполнить полное обновление системы вместе с синхронизацией баз данных репозиториев.

sudo pacman -R название_пакета

Удаляет названный пакет из системы

sudo pacman -Rsn название_пакета

Удаляет названный пакет из системы, а также все его зависимости, если они не требуются другими установленными пакетами.

sudo pacman -Scc

Выполняет полную очистку кэша пакетов. Подробнее см. Профилактика диска.

sudo pacman -Rscn $(pacman -Qtdq)

Удаляет из системы все так называемые пакеты "сироты", то есть такие, которые не были явно установлены и не являются при этом ничьими зависимостями.

git clone

Команда для клонирования git репозитория. Активно используется при установке AUR пакетов нижеуказанным способом.

makepkg -sric

Команда для сборки пакета из соответствующего файла-сценария PKGBUILD. Ключ -i запросит установку пакета после его сборки, -s запросит установку сборочных зависимостей, -r выполнит их автоматическое удаление после окончания сборки пакета, -c выполнит удаление временных файлов.

Пару слов об AUR помощниках#

Далее в руководстве все пакеты из AUR (Arch Linux User Repository) будут устанавливаться и собираться, если так можно выразиться, "дедовским" способом, т.е. через стандартные утилиты git и makepkg, без применения так называемых "AUR Помощников". Это сделано по причине их быстрой сменяемости, и тот помощник который был актуален раньше, может стать устаревшим и никому не нужным. Для примера, так было с AUR-помощником yaourt.

Кроме того, согласно Arch Wiki, AUR-помощники официально не поддерживаются дистрибутивом. А "старый" метод, через обычное клонирование git репозитория из AUR командой git clone и сборка пакета через makepkg, будет работать всегда. Тем не менее, обращаем ваше внимание, что возможность установки пакетов через AUR помощник возможна, и вы можете её использовать для всех AUR пакетов, о которых пойдет речь далее. Подробнее об этом можно почитать здесь.

Обновление ключей Arch Linux#

Обновление ключей необходимо во избежание дальнейших проблем с установкой пакетов:

sudo pacman-key --init               # Инициализация
sudo pacman-key --populate archlinux # Получить ключи из репозитория
sudo pacman-key --refresh-keys       # Проверить текущие ключи на актуальность
sudo pacman -Sy archlinux-keyring    # Обновить пакет archlinux-keyring

Данная операция может занять продолжительное время. Для дальнейшего их автоматического обновления нужно включить службу-таймер, которая оптимизирует процесс при помощи команды archlinux-keyring-wkd-sync:

sudo systemctl enable --now archlinux-keyring-wkd-sync.timer

Таким образом ключи будут обновляться раз в неделю.

Включение 32-битного репозитория#

Убедимся, что конфигурация пакетного менеджера pacman настроена для получения доступа к загрузке 32-битных зависимостям, нужным в частности для установки Steam.

Примечание

Если вы не используете Steam, то можете пропустить данный шаг.

Для этого раскомментируем так называемый multilib репозиторий внутри конфигурации /etc/pacman.conf. Сделать это можно используя любой текстовый редактор или при помощи командной строки:

echo -e "[multilib]\nInclude = /etc/pacman.d/mirrorlist" \
    | sudo tee -a /etc/pacman.conf

После чего необходимо загрузить базу данных для только что добавленного репозитория:

sudo pacman -Suy

Ускорение обновления системы#

Pacman - весьма быстрый пакетный менеджер, но узким горлышком всегда остается сеть, поэтому для более быстрого обновления системы рекомендуется всегда использовать наиболее свежие и близкие к вам географически зеркала. Для этого следует установить утилиту reflector, которая отсортирует доступные репозитории по скорости:

sudo pacman -S reflector rsync

Запустить reflector можно вручную со следующим набором параметров:

sudo reflector --verbose \
  --country "$(curl -sSL 'https://ifconfig.co/country-iso')" \
  --latest 25 \
  --sort age \
  --save /etc/pacman.d/mirrorlist

Либо в автоматическом режиме активировав службу, которая может срабатывать по таймеру для постоянной актуализации списка зеркал:

echo "--country "$(curl -sSL https://ifconfig.co/country-iso)"
      --save /etc/pacman.d/mirrorlist
      --protocol https
      --latest 25
      --sort age" | sudo tee /etc/xdg/reflector/reflector.conf
sudo systemctl enable reflector.service reflector.timer

Вместо использования reflector можно также вручную отредактировать список зеркал, добавив туда зеркала из постоянно обновляющегося перечня на сайте Arch Linux: https://archlinux.org/mirrorlist/.

Отключение таймаутов при загрузке пакетов#

Если вы имеете плохое качество соединения или слабый уровень сигнала, то при загрузке пакетов при помощи pacman вы могли сталкиваться с ошибкой превышания лимитов ожидания (таймаутов). Чтобы этого избежать нужно добавить параметр DisableDownloadTimeout в pacman.conf внутри секции [options] при помощи любого текстового редактора, либо через команду sed:

sudo sed -i 's/\[options\]/\[options\]\nDisableDownloadTimeout/g' /etc/pacman.conf