Jump to content
From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи System maintenance. Дата последней синхронизации: 14 февраля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Ссылки по теме

- Основные рекомендации

Регулярное обслуживание системы необходимо для правильной работы Arch в течение длительного времени. Своевременное обслуживание является привычной практикой многих пользователей.

## Проверка на наличие ошибок

### Неудачный запуск служб systemd

Проверьте, возможно какие-либо службы systemd неудачно запустились:

    $ systemctl --failed

Для большей информации смотрите Systemd (Русский)#Использование юнитов.

### Файлы журналов

Посмотрите на наличие ошибок файл журнала, находящийся в `/var/log`, а также высоко приоритетные ошибки в журнале systemd:

    # journalctl -p 3 -xb

Смотрите Systemd (Русский)/Journal (Русский) для большей информации.

Смотрите Xorg (Русский)#Решение проблем о том где и как получить информацию о журналах ошибок Xorg.

## Резервное копирование

Регулярно создавайте резеврные копии важных данных. В статье Программы синхронизации и резервного копирования описаны различные программы, среди которых вы можете выбрать подходящую для вас. Смотрите также категорию восстановление системы.

Можно настроить автоматическое выполнение резервного копирования — смотрите Автозапуск#Запуск по расписанию.

### Файлы настроек

Перед внесением изменений в файлы настроек создайте их резервную копию. Тогда вы можете вернуться к рабочей версии в случае возникновения проблем. Такие редакторы как vim и emacs могут сделать это автоматически. Для крупных масштабов можно использовать менеджеры конфигурации.

Для dotfiles (файлов конфигурации, хранящихся в домашнем каталоге) смотрите dotfiles#Tracking dotfiles directly with Git.

### Список установленных приложений

Ведите список всех установленных пакетов, а если полная переустановка неизбежна, то легче будет воссоздать первоначальное окружение.

Для подробностей смотрите Pacman (Русский)/Tips and tricks (Русский)#Резервная копия базы данных pacman.

### База данных Pacman

Смотрите Pacman/Советы и приёмы#Резервная копия базы данных pacman.

### Метаданные шифрования

Переодически проверяйте и синхронизируйте резервные копии LUKS-шифрованные заголовки разделов, особенно если ключевые фразы были аннулированы. Смотрите Dm-crypt/Device encryption#Backup and restore.

### Данные системы и пользователей

Смотрите System backup.

## Обновление системы

Рекомендуется регулярно выполнять полное обновление системы, чтобы насладиться последними исправлениями и обновлениями безопасности, а также, чтобы не иметь дело со слишком большим количеством обновлений пакетов, которые сразу требуют ручного вмешательства. Для подробностей смотрите Pacman (Русский)#Обновление пакетов.

Убедитесь в том, что имеете установочный носитель Arch или доступен другой "live" Linux CD/USB, так что вы можете легко восстановить вашу систему, если появится проблема после обновления. Если вы используете Arch в рабочей среде, или не можете позволить себе время простоя по любой причине, - тестируйте изменения в файлах настроек, а также обновления программных пакетов на некритичных дубликатах первой системы. Тогда, если не будет никаких проблем, - сделаете изменения в рабочей среде.

Если в системе есть пакеты из AUR, внимательно обновите все из них.

pacman является мощным инструментом управления пакетами, но он не пытается решить все возможные проблемы. Пользователи должны быть бдительными и нести ответственность за обслуживание своей системы.

### Прочитайте перед обновлением системы

Перед обновлением Arch всегда читайте последние Новости Arch, чтобы узнать, есть ли какие-либо основные программные изменения или настройки с последними пакетами. Если обновления требуют нестандартного вмешательства пользователя (сверх того, с чем можно справиться, просто следуя инструкциям pacman), будет сделано соответствующее сообщение в новостях.

Перед обновлением основного программного обеспечения (например, kernel, xorg, systemd, или glibc) на новую версию, посмотрите соответствующий форум, чтобы увидеть, были ли какие-либо сообщения о проблемах.

Пользователи также должны понимать, что обновление пакетов может вызвать неожиданные проблемы, которые могут потребовать немедленного вмешательства; поэтому не рекомендуется обновлять стабильную систему перед работой над важными задачами. Вместо этого подождите с обновлением, пока не появится достаточно свободного времени, которое можно было бы выделить решению возможных проблем после обновления.

Совет: Вы можете использовать хук pacman, например informantAUR, который предотвращает обновление, если есть свежие новости, которые вы не читали с момента последнего обновления.

### Избегайте определенных команд pacman

Избегайте частичные обновления, то есть никогда не запускайте `pacman -Sy`, вместо того чтобы использовать `pacman -Syu`.

Избегайте использования опции `--overwrite` с Pacman. Опция `--overwrite` принимает glob-паттерн. При её использовании pacman будет пропускать проверку конфликтов для файлов, которые соответствуют указанному паттерну. В правильно поддерживаемой системе, она должна использоваться только тогда, когда явно рекомендуется разработчиками Arch (смотрите #Прочитайте перед обновлением системы).

Избегайте использования опции `-d` с Pacman. `pacman -Rdd пакет` пропустит проверку зависимостей при удалении пакета. В результате пакет, создающий критическую зависимость, может быть удален, что приведет к нарушению системы.

### Частичные обновления не поддерживаются

Arch Linux является роллинг-релиз дистрибутивом. Это означает, что когда новая версия библиотек поступит в репозиторий, разработчики и доверенные пользователи пересоберут все пакеты в репозиториях, которые должны быть пересобраны с библиотеками. Например, если два пакета зависят от той же библиотеки, обновление только одного пакета может также обновить библиотеку (в качестве зависимости), которая может сломать другой пакет, который зависит от старой версии библиотеки.

Именно поэтому частичные обновления являются не поддерживаемыми. Не используйте:

- `pacman -Sy пакет`
- `pacman -Sy` и затем `pacman -S пакет`.
- `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 могут быть созданы файлы .pacnew и .pacsave. Pacman уведомит вас, когда это произойдет, и пользователи должны разобраться с этими файлами в кратчайшие сроки. Подробные инструкции есть в статье Pacman/Pacnew and Pacsave (Русский).

Кроме того, подумайте о других файлах настроек, которые вы могли ранее скопировать или создать. Если пакет содержал пример настроек, который вы скопировали в свой домашний каталог, проверьте, не обновился ли этот пример.

### Перезагружайтесь после обновлений

Обновления, как правило, не применяются к ранее запущенным процессам. Вы должны перезапустить процессы, чтобы полностью применить обновление.

Пакет archlinux-contrib предоставляет скрипт checkservices, который запускает pacdiff для объединения файлов .pacnew, затем ищет процессы, запущенные со старыми версиями библиотек, и спрашивает пользователя, нужно ли их перезапустить.

Ядро весьма трудно обновить без перезагрузки. Перезагрузка всегда является наиболее безопасным вариантом, но если это очень неудобно, можно использовать Kernel live patching для применения обновлений без перезагрузки.

### Откат сломанных обновлений

Если известно, что пакет обновления создаёт или может создать проблемы, сопроводители добавят в пакет предупреждение, которое pacman отобразит. Если возникли проблемы после обновления, перепроверьте вывод pacman, просмотрев `/var/log/pacman.log`.

Совет: Для поиска в журналах pacman можно использовать специальный просмотрщик журналов, например wat-gitAUR.

Только если нет никакой информации от pacman, нет новости на https://archlinux.org/ и нет сообщений на форуме по поводу обновления, рассмотрите возможность обращения за помощью на форум и в IRC, либо "откатите" пакет.

### Проверяйте наличие ненужных и заброшенных пакетов

После обновления у вас могут появиться пакеты, которые больше не нужны или которых больше нет в официальных репозиториях.

Используйте `pacman -Qtd` для поиска пакетов, которые были установлены как зависимости, но теперь от них не зависят другие пакеты. Если осиротевший пакет всё ещё необходим, рекомендуется изменить причину установки на «установлен явно». Иначе, если пакет больше не нужен, его можно удалить.

Кроме того, некоторые пакеты могли быть удалены из репозиториев, но они всё ещё могут быть установлены в вашей локальной системе. Чтобы получить список всех сторонних пакетов, используйте `pacman -Qm`. Обратите внимание, что в этот список будут включены пакеты, установленные вручную (например, из AUR). Чтобы исключить пакеты, которые (всё ещё) доступны в AUR, используйте инструмент ancient-packagesAUR.

## Используйте менеджер пакетов для установки программного обеспечения

Pacman делает работу намного лучше, чем ваше ручное содержание файлов. Если вы устанавливаете пакеты вручную, вы в скором времени, рано или поздно, забудете что вы делали, устанавливали конфликтующее программное обеспечение, устанавливали в неправильное место и т.д. Вместо этого:

- По возможности устанавливайте пакеты из официальных репозиториев, как описано в статье pacman (Русский)#Установка пакетов.
- Если нужной программы там нет, возможно, кто-то уже создал пакет на AUR.
- Если программы нет даже в AUR, узнайте, как создать пакет.

Чтобы очистить неправильно установленные файлы, смотрите Pacman (Русский)/Tips and tricks (Русский)#Поиск файлов без пакета-владельца.

### Выбирайте драйверы с открытым исходным кодом

Всегда старайтесь использовать драйверы с открытым исходным кодом, прежде чем прибегнуть к проприетарным драйверам. Большую часть времени, драйверы с открытым исходным кодом являются более стабильными и надежными, чем проприетарные драйверы. Ошибки драйверов с открытым исходным кодом исправляются более легко и быстро. В то время как закрытые драйверы могут предложить больше функций и возможностей, это может происходить за счет стабильности. Чтобы избежать этой дилеммы, попробуйте выбрать аппаратные компоненты (железо), известные и имеющие развитую поддержку открытых драйверов с полными функциями. Информацию об аппаратном обеспечении с открытым исходным кодом драйверов Linux можно найти на linux-drivers.org.

### Будьте осторожны с неофициальными пакетами

Используйте меры предосторожности при использовании пакетов из AUR или неофициальных пользовательских репозиториев. Большинство из них содержатся обычными пользователями, и, следовательно, не могут иметь те же стандарты, что и в официальных репозиториях. Будьте осторожны с вспомогательными утилитами для работы с AUR, которые весьма упрощают установку пакетов AUR. Всегда проверяйте PKGBUILD'ы на вменяемость, признаки ошибок или вредоносного кода, прежде чем собрать и/или установить пакет.

Для упрощения технического обслуживания, ограничьте количество используемых неофициальных пакетов. Делайте периодические проверки на актуальность их использования, и удалите (или замените их на официальный аналог) либо на другие. Смотрите полезные команды Pacman/Советы и приёмы#Обслуживание.

### Обновляйте список зеркал

Периодически обновляйте список зеркал pacman (mirrorlist), так как качество зеркал может меняться со временем, и некоторые из них могут перестать работать или их скорость загрузки может ухудшиться.

Смотрите Зеркала.

## Очистите файловую систему

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

- List of applications#Disk usage display.
- List of applications#Disk cleaning.

### Кэш пакетов

Удалите ненужные файлы `.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 и ram disk: `vmlinuz-linux-lts` и `initramfs-linux-lts.img`.

## Смотрите также

- Bash-скрипт для новостей Arch (Англ.)
- Automatic Arch System Maintenance

Category:

- System administration (Русский)