System maintenance (Русский)
Регулярное обслуживание системы необходимо для правильной работы Arch в течение длительного времени. Своевременное обслуживание является привычной практикой многих пользователей.
Проверка на наличие ошибок
Неудачный запуск служб systemd
Проверьте, нет ли каких-нибудь проблем с запуском служб systemd:
$ systemctl --failed
Подробнее смотрите Systemd (Русский)#Использование юнитов.
Файлы журналов
Проверяйте наличие ошибок в файлах журнала, расположенных в /var/log
, а также в сообщениях, записанных в журнале systemd:
# journalctl -b
Подробнее о журнале systemd и способах фильтрации сообщений можно почитать в статье systemd/Журнал.
Смотрите Xorg (Русский)#Решение проблем о том где и как получить информацию о журналах ошибок Xorg.
Резервное копирование
Резервное копирование важных данных — необходимая мера, потому что человеческие и технические ошибки обработки могут однажды привести к их повреждению, а физический носитель, на котором хранятся данные, через какое-то время неизбежно выйдет из строя.
В статье Программы синхронизации и резервного копирования описаны различные программы, среди которых вы можете выбрать подходящую для вас. Смотрите также категорию Восстановление системы.
Можно настроить автоматическое выполнение резервного копирования — смотрите Автозапуск#Запуск по расписанию.
Файлы настроек
Перед внесением изменений в файлы настроек создайте их резервную копию. Тогда вы сможете вернуться к рабочей версии в случае возникновения проблем. Такие редакторы как vim и emacs могут сделать это автоматически. Для крупных масштабов можно использовать менеджеры конфигурации.
Для dotfiles (файлов конфигурации, хранящихся в домашнем каталоге) смотрите dotfiles#Tracking dotfiles directly with Git.
Список установленных приложений
Ведите список всех установленных пакетов: если однажды понадобится полная переустановка, то воссоздать первоначальное окружение будет легче.
Смотрите Pacman/Советы и приёмы#Список установленных пакетов.
База данных Pacman
Смотрите Pacman/Советы и приёмы#Резервная копия базы данных pacman.
Метаданные шифрования
Смотрите Data-at-rest encryption (Русский)#Сценарии резервного копирования зашифрованного диска.
Данные системы и пользователей
Смотрите System backup.
Обновление системы
Рекомендуется регулярно выполнять полное обновление системы, чтобы насладиться последними исправлениями и обновлениями безопасности, а также чтобы не иметь дело со слишком большим количеством обновляемых пакетов, которые все сразу потребуют ручного вмешательства. Смотрите Pacman (Русский)#Обновление пакетов.
Держите неподалёку установочный носитель Arch или другой «live» CD/USB с Linux, чтобы вы могли легко загрузиться с него и починить систему, если появятся какие-то проблемы после обновления. Если вы используете Arch в рабочей среде или не можете позволить себе время простоя по любой причине — тестируйте обновления и изменения в файлах настроек на некритичных дубликатах первой системы. Если там не будет никаких проблем — после этого сделаете изменения в рабочей среде.
Если в системе есть пакеты из AUR, внимательно обновите всех их.
pacman является мощным инструментом управления пакетами, но он не пытается решить все возможные проблемы. Пользователи должны быть бдительными и нести ответственность за обслуживание своей системы.
Прочитайте перед обновлением системы
Перед обновлением Arch всегда читайте последние новости Arch. Также можно подписаться на RSS-ленту или список рассылок arch-announce. Если обновления требуют нестандартного вмешательства пользователя (сверх того, с чем можно справиться, просто следуя инструкциям pacman), будет сделано соответствующее сообщение в новостях.
Перед обновлением основного программного обеспечения (например, ядра, Xorg, systemd или glibc) проверьте форум на наличие сообщений о проблемах.
Пользователи также должны понимать, что обновление пакетов может вызвать неожиданные проблемы, которые могут потребовать немедленного вмешательства; поэтому не рекомендуется обновлять стабильную систему перед работой над важными задачами. Вместо этого подождите с обновлением, пока не появится достаточно свободного времени, которое можно было бы выделить решению возможных проблем после обновления.
Избегайте определенных команд pacman
Избегайте частичные обновления, то есть никогда не запускайте pacman -Sy
; вместо этого используйте pacman -Syu
.
Избегайте использования опции --overwrite
в pacman. Опция --overwrite
принимает glob-паттерн. При её использовании pacman будет пропускать проверку конфликтов для файлов, которые соответствуют указанному паттерну. В правильно поддерживаемой системе она должна использоваться только тогда, когда явно рекомендуется разработчиками Arch (смотрите #Прочитайте перед обновлением системы).
Избегайте использования опции -d
в pacman. pacman -Rdd пакет
пропустит проверку зависимостей при удалении пакета. В результате пакет, являющийся критической зависимостью, может быть удалён, что приведёт к поломке системы.
Частичные обновления не поддерживаются
Arch Linux является роллинг-релиз дистрибутивом. Это означает, что, когда в репозитории появятся новые версии библиотек, разработчики и сопроводители пакетов пересоберут все пакеты, связанные с обновившимися библиотеками. Например, если два пакета зависят от одной и той же библиотеки, обновление только одного пакета может также обновить библиотеку (в качестве зависимости), и это обновление может сломать другой ещё не обновлённый пакет, который зависит от старой версии библиотеки.
Именно поэтому частичные обновления не поддерживаются. Не используйте:
pacman -Sy пакет
pacman -Sy
и затемpacman -S пакет
(обратите внимание на отсутствие-Su
в команде установки пакета)pacman -Syuw
(имеет те же риски, что иpacman -Sy
, поскольку он обновит базу пакетов pacman без установки новых пакетов.)
При обновлении базы данных пакетов всегда выполняйте полное обновление командой pacman -Syu
. Имейте в виду, что если pacman -Syu
не выполнит обновление из-за какой-то ошибки, конечный результат будет такой же, как и при использовании pacman -Sy
. Поэтому необходимо устранить ошибку и завершить обновление как можно скорее.
По той же причине будьте очень осторожны при использовании IgnorePkg
и IgnoreGroup
. Если в системе есть локально установленные пакеты (например, пакеты из AUR), пользователи должны будут пересобрать их, когда в их зависимостях случится soname bump.
Если было проведено частичное обновление и бинарные файлы оказались сломаны, потому что они не могут найти зависимые библиотеки, не пытайтесь «исправить» проблему при помощи символической ссылки. Библиотеки получают soname bump, когда они ломают обратную совместимость. Выполнение команды pacman -Syu
с правильно синхронизированным зеркалом решит проблему, если сам pacman работоспособен.
Скрипт checkupdates, который входит в состав пакета pacman-contrib, обеспечивает безопасный способ проверки наличия обновлений для установленных пакетов без запуска обновления системы, а также предоставляет возможность загрузить обновлённые пакеты в кэш pacman, не обновляя базу данных пакетов.
Сигналы предупреждений во время обновления
При обновлении системы обращайте внимание на уведомления, которые выводит pacman. Если он потребует какие-либо дополнительные действия от пользователя, сделайте их сразу же. Если предупреждения pacman непонятны, проверьте недавние новости и сообщения на форуме на наличие более подробных инструкций.
Как можно быстрее разбирайтесь с новыми файлами настроек
В процессе работы pacman могут быть созданы файлы .pacnew и .pacsave. Pacman уведомит вас, когда это произойдёт, и пользователи должны разобраться с этими файлами в кратчайшие сроки. Подробные инструкции есть в статье Pacman/Pacnew and Pacsave (Русский).
Кроме того, подумайте о других файлах настроек, которые вы могли ранее скопировать или создать. Если пакет содержал пример настроек, который вы скопировали в свой домашний каталог, проверьте, не обновился ли этот пример.
Перезагружайтесь после обновлений
Обновления, как правило, не применяются к ранее запущенным процессам. Вы должны перезапустить процессы, чтобы полностью применить обновление.
Пакет archlinux-contrib предоставляет скрипт checkservices, который запускает pacdiff для объединения файлов .pacnew, затем ищет процессы, запущенные со старыми версиями библиотек, и спрашивает пользователя, нужно ли их перезапустить.
Ядро весьма трудно обновить без перезагрузки. Перезагрузка всегда является наиболее безопасным вариантом, но если это очень неудобно, можно использовать kernel live patching для применения обновлений без перезагрузки.
Откат сломанных обновлений
Если известно, что пакет обновления создаёт или может создать проблемы, сопроводители добавят в пакет предупреждение, которое pacman отобразит. Если возникли проблемы после обновления, перепроверьте вывод pacman, просмотрев /var/log/pacman.log
.
Только если нет никакой информации от pacman, нет связанной новости на https://archlinux.org/ и нет сообщений на форуме по поводу обновления, рассмотрите возможность обращения за помощью на форум и в IRC, либо откатите пакет.
Проверяйте наличие ненужных и заброшенных пакетов
После обновления у вас могут появиться пакеты, которые больше не нужны или которых больше нет в официальных репозиториях.
Используйте pacman -Qtd
для поиска пакетов, которые были установлены как зависимости, но от которых теперь не зависят другие пакеты. Если осиротевший пакет всё ещё необходим, рекомендуется изменить причину установки на «установлен явно». Иначе, если пакет больше не нужен, его можно удалить.
Кроме того, некоторые пакеты могли быть удалены из репозиториев, но они всё ещё могут быть установлены в вашей локальной системе. Чтобы получить список всех сторонних пакетов, используйте pacman -Qm
. Обратите внимание, что в этот список будут включены пакеты, установленные вручную (например, из AUR). Чтобы исключить пакеты, которые (всё ещё) доступны в AUR, можно использовать скрипт из BBS#288205 или инструмент ancient-packagesAUR.
Используйте менеджер пакетов для установки программного обеспечения
Pacman справляется с отслеживанием файлов гораздо лучше чем вы. Если вы устанавливаете программы вручную, вы рано или поздно забудете, что вы делали, что и куда вы устанавливали, что устанавливали конфликтующее программное обеспечение, что устанавливали в неправильное место и т.д. Вместо этого:
- По возможности устанавливайте пакеты из официальных репозиториев, как описано в статье pacman (Русский)#Установка пакетов.
- Если нужной программы там нет, возможно, кто-то уже создал пакет на AUR.
- Если программы нет даже в AUR, создайте пакет сами.
Чтобы очистить неправильно установленные файлы, смотрите Pacman (Русский)/Tips and tricks (Русский)#Поиск файлов без пакета-владельца.
Выбирайте драйверы с открытым исходным кодом
Всегда старайтесь использовать драйверы с открытым исходным кодом, прежде чем переходить к использованию проприетарных драйверов. Чаще всего драйверы с открытым исходным кодом являются более стабильными и надёжными, чем проприетарные драйверы. Ошибки в драйверах с открытым исходным кодом исправляются легче и быстрее, в то время как закрытые драйверы хотя и могут предложить больше функций и возможностей, но ради них жертвуют стабильностью. Чтобы избежать этой дилеммы, старайтесь выбрать аппаратные компоненты (железо), для которых есть открытые драйверы, реализующие все возможности. Информацию об оборудовании, для которого есть открытые Linux-драйверы, можно найти на linux-drivers.org.
Будьте осторожны с неофициальными пакетами
Используйте меры предосторожности при использовании пакетов из AUR или неофициальных пользовательских репозиториев. Большинство из них сопровождаются обычными пользователями, и, следовательно, могут не соответствовать тем же стандартам, что и пакеты в официальных репозиториях. Будьте осторожны с вспомогательными утилитами для работы с AUR, которые весьма упрощают установку пакетов AUR. Всегда проверяйте PKGBUILD'ы на вменяемость, признаки ошибок или вредоносного кода, прежде чем собрать и/или установить пакет.
Для упрощения обслуживания ограничьте количество используемых неофициальных пакетов. Делайте периодические проверки на актуальность их использования, и удалите (или замените их на официальный аналог) либо на другие. Смотрите полезные команды Pacman/Советы и приёмы#Обслуживание. После обновления системы используйте rebuild-detector для поиска неофициальных пакетов, которые может понадобиться пересобрать.
Обновляйте список зеркал
Периодически обновляйте список зеркал pacman (mirrorlist), так как качество зеркал может меняться со временем, и некоторые из них могут перестать работать или их скорость загрузки может ухудшиться.
Смотрите Зеркала.
Очистите файловую систему
При поиске файлов для удаления ищите файлы, которые занимают бо́льшую часть дискового пространства. В этом могут помочь программы для анализа занятого места:
Кэш пакетов
Удаляйте ненужные файлы .pkg из /var/cache/pacman/pkg/
, чтобы освободить место на диске.
Смотрите Pacman (Русский)#Очистка кэша пакетов.
Неиспользуемые пакеты
Удаляйте неиспользуемые пакеты из системы для освобождения места и упрощения обслуживания.
Смотрите Pacman/Советы и приёмы#Удаление неиспользуемых пакетов.
Старые файлы настроек
Старые файлы настроек могут конфликтовать с новыми версиями программ или портиться со временем. Периодически удаляйте ненужные файлы настроек, особенно в вашем домашнем каталоге и в ~/.config
. По тем же причинам будьте осторожны при совместном использовании одних и тех же домашних каталогов в разных установках.
Проверьте следующие каталоги:
~/.config/
— здесь приложения хранят свои настройки;~/.cache/
— кэш некоторых программ со временем может увеличиваться в размерах;~/.local/share/
— тут могут лежать старые файлы.
Для большей информации смотрите XDG Base Directory support.
Чтобы сохранить домашний каталог чистым от временных файлов, созданных в неправильном месте, будет хорошо иметь список нежелательных файлов и удалять их регулярно, например, с помощью rmshit.py.
rmlint может быть использован для поиска и при необходимости удалении дубликатов файлов, пустых файлов, рекурсивных пустых каталогов и сломанных символических ссылок.
Сломанные символические ссылки
В системе могут находиться сломанные символические ссылки; их желательно удалять. Примеры можно посмотреть тут (Англ.) и там (Англ.). Однако не стоит слепо удалять вообще все битые символические ссылки, так как некоторые из них служат определённым целям [1].
Для быстрого просмотра списка всех сломанных символьных ссылок в вашей системе используйте команду:
# find / -xtype l -print
Затем проверьте и удалите ненужные записи из этого списка.
Советы и рекомендации
Следующие советы, как правило, не требуются, но некоторые пользователи могут счесть их полезными.
Используйте проверенные программные пакеты
Роллинг-релиз Arch даёт преимущество пользователям, которые хотят попробовать новейшие функции и получить последние обновления как можно скорее, но это может сделать обслуживание системы более трудным. Для упрощения технического обслуживания и повышения стабильности старайтесь избегать ультрасовременное программное обеспечение и устанавливайте только зрелые и проверенные программы. С ними меньше шансов получить проблемные обновления, такие как глобальные изменения настроек или удаление имеющихся возможностей. Предпочитайте программное обеспечение, которое имеет сильное и активное сообщество разработчиков, а также большое количество компетентных пользователей, чтобы упростить поддержку в случае возникновения проблем.
Избегайте использования тестового (testing) репозитория, даже отдельных пакетов из testing. Эти пакеты являются экспериментальными и не подходят для стабильной системы. Кроме того, избегайте разрабатываемых пакетов, которые собираются непосредственно из апстрима. Они обычно находятся в AUR и содержат в названии «dev», «devel», «svn», «cvs», «git» и т. п.
Установите пакет linux-lts
Пакет linux-lts — альтернативный пакет ядра Arch, доступный в репозитории core. Эта версия ядра имеет долгосрочную поддержку (LTS) от разработчиков ядра, в том числе исправления безопасности. Это будет полезным, если вы используете сторонние модули или если вы хотите иметь запасное ядро в случае, если новая версия ядра вызывает проблемы.
Чтобы сделать его доступным в качестве варианта загрузки, вам нужно будет обновить файл настроек вашего загрузчика, добавив в него использование ядра LTS и соответствующего образа initramfs: vmlinuz-linux-lts
и initramfs-linux-lts.img
.