6 основных задач по обслуживанию Arch Linux для стабильной работы системы
Установка Arch Linux — это не разовая процедура, а рутинная задача. Для долговременного поддержания работоспособности системы Arch Linux мы регулярно выполняем следующие действия:
- Перед каждым обновлением проверяйте новостную ленту Arch.
- Регулярно обновляйте систему и пакеты AUR.
- Удалите ненужные пакеты, которые больше ни для чего не требуются.
- Периодически очищайте кэш пакетов pacman.
- Проверка настроек файлов
.pacnewи.pacsaveпосле обновления. - и проверить неисправные службы.
Ни одна из этих проблем сама по себе не является срочной, но пропуск всех этих пунктов на несколько месяцев часто называют основной причиной сообщений типа «моя система Arch работает некорректно (my Arch system feels broken)».
В конце мы добавили рекомендуемый интервал между подходами, чтобы вам не приходилось гадать, как часто следует выполнять те или иные упражнения.
pacman с добавлением AUR-helper.
1. Проверяйте ленту новостей перед каждым обновлением.
Перед запуском обновления откройте в браузере сайт archlinux.org/news.
Arch Linux — это дистрибутив с непрерывным обновлением, в котором нет запланированной «версии», на которой можно было бы сначала протестировать изменения.
В большинстве случаев pacman -Syuвсе работает как надо. Иногда для изменений требуется ручное вмешательство (изменение структуры разделов, миграция конфигурации, разделение пакетов), и об этом всегда сообщается в новостной ленте до того, как пакеты попадают в репозитории.
Пропуск этой проверки часто приводит к тому, что обновления воспринимаются как «сломанные».
2. Обновите системные пакеты и пакеты AUR.
2.1. Полное обновление системы
sudo pacman -Syu
Всегда запускайте -Syuвсе пакеты одновременно. Никогда не синхронизируйте ( -Sy) без одновременного обновления ( -u) в той же команде. Arch не поддерживает частичное обновление, и синхронизация без обновления — один из самых распространенных способов нарушить зависимости пакетов.
2.2. Обновление пакетов AUR
Вспомогательные функции AUR ( paru или yay ) позволяют управлять как официальными, так и AUR-пакетами одной командой:
paru -Syu
Пакеты AUR не являются предварительно собранными. Обновление пакета означает его пересборку из исходного кода на вашем компьютере, поэтому обновление системы, активно использующее AUR, может занять заметно больше времени, чем обновление из официального репозитория.
3. Удалите «orphaned» пакеты.
«orphaned пакет» — это пакет, который изначально был установлен как зависимость чего-то другого, но это «что-то другое» впоследствии было удалено или заменено, в результате чего от этой зависимости ничего не осталось, и она не используется.
3.1. Поиск orphaned
pacman -Qdt
3.2. Удаление orphaned
sudo pacman -Rns $(pacman -Qdtq)
Этот флаг -Rns удаляет пакеты, их теперь ненужные зависимости и любые связанные с ними конфигурационные файлы.
Если у вас нет «orphaned» файлов, эта команда выведет сообщение, error: argument '-' specified with empty stdinа не просто молча ничего не сделает. Это ожидаемо и безвредно. Это просто означает, что команде удаления нечего было передать, а не то, что что-то сломано.
Стоит также периодически проверять:
pacman -Qm — в этом списке перечислены «внешние» пакеты, то есть все, что установлено из AUR или вручную, а не из официального репозитория. Иногда пакет из AUR полностью удаляется из исходного кода, а это значит, что ваш AUR-помощник больше не может его обновлять, и вы бы об этом никогда не узнали. Этот список стоит просматривать каждые несколько месяцев.
4. Очистите кэш пакетов Pacman.
При каждой установке или обновлении пакета pacman сохраняет копию загруженного файла в /var/cache/pacman/pkg/.
$ ls /var/cache/pacman/pkg/ abseil-cpp-20260526.0-2-x86_64.pkg.tar.zst abseil-cpp-20260526.0-2-x86_64.pkg.tar.zst.sig accountservice-26.13.3-1-x86_64.pkg.tar.zst accountservice-26.13.3-1-x86_64.pkg.tar.zst.sig [...]
Это сделано намеренно. Это позволяет откатить версию пакета, если обновление что-то сломало. Если бы они оставались без управления, их размер разрастался бы бесконечно.
4.1. Обрезка с помощью paccache
sudo pacman -S pacman-contrib sudo paccache -rk2
Этот флаг -rk2 сохраняет две самые последние версии каждого пакета и удаляет остальные. Это обеспечивает возможность понижения версии без чрезмерного разрастания кэша.
4.2. Автоматизируйте это.
sudo systemctl enable --now paccache.timer
5. Проверка и объединение файлов .pacnew (и .pacsave).
Когда обновление изменяет настроенный вами конфигурационный файл, pacman не перезаписывает вашу версию. Он устанавливает новую версию по умолчанию рядом с вашей filename.pacnew, оставляя вам возможность решить, что с ней делать.
Файл-компаньон .pacsaveпоявляется при удалении пакета, в котором хранилась измененная вами конфигурация. Это ваша старая версия, сохраненная на случай, если вы переустановите пакет позже.
5.1. Поиск и объединение их
sudo pacman -S pacman-contrib pacdiff
Программа pacdiff сканирует вашу систему на наличие файлов .pacnewи .pacsaveи и пошагово объясняет, как объединить каждый из них с существующей конфигурацией, показывая разницу, чтобы вы могли точно увидеть, что изменилось.
Почему это важно:
Игнорирование этих файлов на неопределенный срок приводит к тому, что ваши конфигурации постепенно перестают соответствовать ожиданиям пакета. Обычно это безвредно в течение нескольких месяцев, пока одно конкретное обновление не предполагает значение по умолчанию, которого нет в вашей старой конфигурации, и что-то не сломается таким образом, что будет трудно отследить причину, связанную с файлом конфигурации, о существовании которого вы забыли.
Для получения более подробной информации об этих двух файлах ознакомьтесь со следующими руководствами:
6. Проверьте наличие сбоев в работе служб и ошибок.
6.1. Сбои в работе служб systemd
systemctl --failed
Пустой результат — это хорошо. Это означает, что все включенные службы успешно запустились при последней загрузке. Все, что здесь указано, стоит проверить с помощью journalctl -u service-name.
6.2. Просмотр лога Pacman
less /var/log/pacman.log
Стоит периодически просматривать этот список, особенно после проблемного обновления. Это полный перечень всех установленных, удаленных или обновленных пакетов с указанием времени.
6.3. Не забывайте об уже запущенных процессах.
Обновление библиотеки не вступает в силу в уже запущенных программах. Например, браузер, открытый вами в течение нескольких дней, будет продолжать использовать старую версию в памяти до тех пор, пока не будет перезапущен.
Периодическая перезагрузка, а не только после обновлений ядра, — это самый простой способ гарантировать, что все запущенные процессы действительно используют только что установленные версии.
7. Рекомендуемый ритм
Если система не обновляется в течение шести месяцев или более, то обычно в ней накапливаются десятки файлов .pacnew и многогигабайтный кэш. Это делает последующее обновление гораздо более рискованным, чем любое разовое еженедельное обновление. Лучше обновлять понемногу, чем делать это редко и в больших объемах.
| Задача | Частота | Почему |
|---|---|---|
| Проверьте новостную ленту | Каждый раз, перед обновлением | Это занимает секунды, но предотвращает наихудшие последствия. |
pacman -Syu+ Обновление AUR | Еженедельно | Частые небольшие обновления проще устранять, чем редкие крупные. |
| Удалить «осиротевшие» пакеты | Ежемесячно | Сироты накапливаются постепенно; нет необходимости ежедневно их разыскивать. |
| Очистить кэш Pacman | Ежемесячно (или автоматизировать с помощью таймера) | Проблема не в стабильности, а в нехватке дискового пространства. |
Обзор .pacnew/ .pacsave файлов | После любого обновления, в котором упоминаются изменения конфигурации. | Большинство обновлений ничего не генерируют; проверьте, когда обновление всё-таки появится. |
| Проверьте неработающие службы. | Ежемесячно или всякий раз, когда что-то кажется не так. | Не требует больших усилий, выявляет проблемы до того, как они усугубятся. |
Часто задаваемые вопросы
Безопасно ли удалять все потерянные посылки?
В целом, да. Команда pacman -Qdt выводит список только тех пакетов, от которых в данный момент ничего не зависит. Редкое исключение — это пакет, который вы установили вручную по причине, которую pacman не может определить (например, модуль ядра, с которым вы выполняете сборку), но который никогда не был явно помечен как «явно установленный».
Если вы не уверены в конкретном пакете, проверьте, что это за пакет, прежде чем удалять его, вместо того, чтобы вслепую передавать весь список.
Что произойдет, если я проигнорирую файлы .pacnew?
Ничего сразу. Ваша старая конфигурация продолжает работать точно так же, как и раньше. Риск носит накопительный характер: каждый игнорируемый .pacnewфайл — это еще одно место, где фактическая конфигурация вашей системы незаметно отклоняется от того, что ожидают текущие версии пакетов, и этот разрыв в конечном итоге приводит к непонятной ошибке во время какого-либо не связанного с этим будущего обновления.
Кэш Pacman заполнил мой диск, что делать дальше?
Немедленно выполните команду sudo paccache -rk2 для освобождения места, затем настройте параметры paccache.timerиз шага 4 так, чтобы это больше не повторилось. Если вам нужно освободить место прямо сейчас и вас не волнует безопасность отката, команда sudo pacman -Scc полностью очистит кэш, но вы потеряете возможность откатить любой установленный пакет.
Как часто мне действительно следует обновлять Arch?
Обычно рекомендуется еженедельная частота обновлений. Достаточно часто, чтобы каждое отдельное обновление было небольшим и его было легко устранить в случае неполадок, и достаточно редко, чтобы не превращаться в ежедневную рутину.
Многомесячные перерывы между обновлениями обычно приводят к эффекту «все сломалось одновременно», поскольку десятки изменений внедряются сразу, а не по одному-два за раз.
Заключение
В этой статье мы рассмотрели шесть важных задач по обслуживанию Arch Linux, которые каждый пользователь должен регулярно выполнять. Следование этим рекомендациям поможет поддерживать вашу систему Arch Linux в чистоте, стабильной и бесперебойной работе в долгосрочной перспективе.
Ресурсы:
- ArchWiki: Обслуживание системы
- ArchWiki: Pacman/Советы и рекомендации — Удаление неиспользуемых пакетов
Редактор: AndreyEx
