Обслуживание · 10 min read · Dec 25, 2025

Общее обслуживание систем Arch Linux

Поддержка установки Arch Linux на самом деле очень проста и понятна, если помнить о нескольких вещах. Роллинг-релизная природа дистрибутива означает, что нам никогда не нужно беспокоиться о крупных обновлениях версий, как в других дистрибутивах (например, Ubuntu и Debian). Если вы будете разумно использовать Pacman и регулярно обновлять свои пакеты, вы никогда не столкнетесь с проблемами, связанными с поломкой и неработающими пакетами в Arch. В следующем разделе я изложу свои рекомендации по поддержанию Arch в актуальном состоянии и работе так же, как в день его установки, или даже лучше! Я также предоставлю короткий раздел для оптимизации Arch после его первой установки, что сделает его обслуживание быстрее и проще в долгосрочной перспективе. Как всегда, это всего лишь мои мысли, и любая официальная документация должна быть использована при работе с Arch. Я предполагаю, что вы являетесь sudoer для всех следующих команд. Однако, если вы являетесь sudoer или можете переключиться на пользователя root, у вас все будет в порядке. ArchWiki — отличный ресурс, и многие из руководств и информации, найденной там, полезны даже если вы не используете Arch. Их IRC-канал, #archlinux, можно найти на irc.freenode.net. Это еще одно отличное место, чтобы задавать вопросы и получать полезные советы от более опытных пользователей. Просто не захламляйте канал и не задавайте один и тот же вопрос снова и снова!

Сначала мы пройдем через оптимизацию Arch, что сделает обслуживание и дальнейшее использование быстрее и проще. Это небольшие вещи, которые иногда могут иметь большое значение. Многие люди игнорируют их или слишком ленивы, чтобы правильно настроить такие вещи, как Pacman (менеджер пакетов), поэтому это никогда не делается на их системах. Начать с сильной стороны и сделать систему несколько самодостаточной может значительно упростить жизнь и сэкономить много головной боли позже!

Обновление списка зеркал

Сначала я проведу вас через обновление списка зеркал, чтобы использовать зеркала, которые быстрее всего для вас. Список зеркал находится по адресу /etc/pacman.d/mirrorlist. Один из вариантов — просто посмотреть на список и выбрать зеркала, которые, по вашему мнению, географически ближе к вам. Это полезно в некоторых случаях, но просто потому, что зеркало ближе, не означает, что оно быстрее. Если мы хотим основываться на чем-то более конкретном, мы можем использовать встроенный инструмент, который предоставляет Arch, по адресу /usr/bin/rankmirrors. По умолчанию большинство зеркал в /etc/pacman.d/mirrorlist закомментированы, но для использования rankmirrors вам нужно будет раскомментировать их все. Легкий способ сделать это — скопировать файл под новым именем и использовать sed, чтобы удалить все символы “#”, обозначающие комментарии, с помощью следующих команд:

sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.toBeTested  
sudo sed -i 's/^#Server/Server/' /etc/pacman.d/mirrorlist.toBeTested

Теперь вы можете использовать вывод помощи от rankmirrors, чтобы узнать все о его функциональности, но для этого давайте предположим, что мы просто хотим три самых быстрых зеркала. Мы просто используем наш вновь созданный файл, содержащий все (раскомментированные) зеркала, и используем rankmirrors, чтобы напечатать 3 самых быстрых:

sudo rankmirrors /etc/pacman.d/mirrorlist.toBeTested -n 3

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

sudo vim /etc/pacman.d/mirrorlist

Я люблю делать это каждые несколько месяцев на своей системе, потому что иногда зеркала становятся недоступными или меняются так, что они больше не так быстры. Некоторые могут назвать это тривиальным, но поскольку Arch является дистрибутивом с роллинг-релизом, обычно бывает много обновлений. Даже если вы экономите 3 секунды на каждом пакете, который вы загружаете, это может сложиться в десятки минут за год или более! Плюс, если вы администрируете более одной системы, работающей на Arch, фактор времени еще больше увеличивается. Примите это с долей скептицизма, но мелочи имеют огромное значение, когда дело касается большого количества систем или со временем.

Поддержание точного времени

Я не могу достаточно подчеркнуть, насколько важно, чтобы системное время оставалось точным. Это особенно верно, если речь идет о системе, у которой нет собственного аппаратного часов (например, виртуальная машина). Многие работающие службы требуют, чтобы время между клиентом и сервером было одинаковым, чтобы все работало правильно. Также вы не хотите, чтобы ваша система считала, что сертификат все еще действителен, если это не так, просто потому что системное время неверно! Более того, вы хотите, чтобы время в ваших журналах было точным, чтобы, если вы пытаетесь диагностировать проблему, вы знали, когда что-то действительно произошло, а не когда системные часы ГОВОРЯТ, что это произошло. Самый простой способ сделать это с Arch — использовать NTP, или Протокол сетевого времени. NTP, или более конкретно ntpd, в данном случае будет периодически синхронизировать часы на вашей системе с сервером или серверами в Интернете, чтобы убедиться, что системное время совпадает. Он также отслеживает такие вещи, как дрейф времени, так что, если вам это интересно, вы можете определить, насколько ваши часы были сбиты в любое время.

Проверка часового пояса на вашей установке Arch Linux

На каждой установке Arch доступна команда timedatectl, которая покажет нам много полезной информации о времени и дате на системе.

[jonathan@zabaglione]$ sudo timedatectl
      Локальное время: Вс 2015-07-05 18:30:18 MDT
  Всемирное время: Пн 2015-07-06 00:30:18 UTC
        Время RTC: n/a
       Часовой пояс: Америка/Денвер (MDT, -0600)
 Сетевое время включено: нет
Синхронизация NTP: нет
 Часы RTC в локальном TZ: нет

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

Установка и настройка NTP

Установка и настройка NTP проста с Arch Linux, так как он поставляется с конфигурацией, которая должна работать для большинства людей. Сначала нам нужно установить пакет:

sudo pacman -S ntp

Если все прошло хорошо с установкой, проверьте /etc/ntp.conf. По состоянию на момент написания по умолчанию он выглядит так:

# Пожалуйста, подумайте о присоединении к пулу:
#
#     http://www.pool.ntp.org/join.html
#
# Для получения дополнительной информации смотрите:
# - https://wiki.archlinux.org/index.php/Network_Time_Protocol_daemon
# - http://support.ntp.org/bin/view/Support/GettingStarted
# - страница man ntp.conf

# Ассоциируйтесь с пулом NTP Arch
server 0.arch.pool.ntp.org
server 1.arch.pool.ntp.org
server 2.arch.pool.ntp.org
server 3.arch.pool.ntp.org

# По умолчанию сервер позволяет:
# - все запросы с локального хоста
# - только временные запросы с удаленных хостов, защищенные ограничением по скорости и kod
restrict default kod limited nomodify nopeer noquery notrap
restrict 127.0.0.1
restrict ::1

# Место хранения файла дрейфа
driftfile /var/lib/ntp/ntp.drift

Если вы вообще заинтересованы в изменении значений по умолчанию, я рекомендую ознакомиться со статьей ArchWiki здесь. В противном случае мы будем продолжать предполагать, что файл ntp.conf выглядит так, как вам нужно. Для большинства людей настройки по умолчанию будут вполне приемлемыми. Теперь ntpd — это демон, который мы хотим запустить в фоновом режиме нашей установки Arch Linux. Следующие команды запустят ntpd и включат его при загрузке соответственно.

sudo systemctl start ntpd
sudo systemctl enable ntpd

Поддержка Arch не сильно отличается от поддержки любого другого дистрибутива или операционной системы. Наиболее распространенный способ испортить установку Arch — это не обновлять свои пакеты регулярно. Arch Linux — это дистрибутив с роллинг-релизом. Нет крупных релизов версий, и пакеты обновляются на постоянной и “по мере доступности” основе. Учитывая это, если вы никогда не обновляете свою систему, возможно, что изменения произойдут с такой скоростью, что когда вы наконец решите обновить ее, это вызовет проблему. Обновляйте часто, чтобы избежать конфликтов и проблем. Это также гарантирует, что ваша система работает с самыми последними исправлениями безопасности.

Обновление всей системы Arch Linux

Pacman — это очень мощный менеджер пакетов, но его легко использовать, как только вы привыкнете к флагам использования и синтаксису команд. Самое важное, что вы можете (и должны) сделать для своей системы Arch Linux — это обновлять ее как можно чаще. Я лично обновляю свою систему каждый день, и у меня никогда не было проблем с этим. Каждые несколько дней или раз в неделю должно быть нормально! Следующая команда скажет Pacman синхронизировать все установленные пакеты с репозиториями:

sudo pacman -Syu

Это предоставит список всех доступных обновлений и затем спросит вас, хотите ли вы продолжить:

[root@zabaglione ~]# pacman -Syu
:: Синхронизация баз данных пакетов...
 core                                                                                                                 121.6 KiB   599K/s 00:00 [----------------------------------------------------------------------------------------] 100%
 extra                                                                                                               1738.1 KiB  3.12M/s 00:01 [----------------------------------------------------------------------------------------] 100%
 community                                                                                                              2.7 MiB  8.81M/s 00:00 [----------------------------------------------------------------------------------------] 100%
:: Начало полного обновления системы...
разрешение зависимостей...
поиск конфликтующих пакетов...

Пакеты (8) gnupg-2.1.6-1  less-478-1  libldap-2.4.41-1  lz4-131-1  mercurial-3.4.2-1  openssh-6.9p1-1  vim-7.4.764-1  vim-runtime-7.4.764-1

Общий размер загрузки:   11.29 MiB
Общий установленный размер:  56.65 MiB
Чистый размер обновления:       0.11 MiB

:: Продолжить установку? [Y/n] 

ЧИТАЙТЕ ВНИМАТЕЛЬНО! Иногда Pacman будет делать такие вещи, как обновление списка зеркал или других файлов, и он сообщит вам об этом перед тем, как это сделать, а также где старые файлы были сохранены. Со временем вы привыкнете к тому, когда это происходит, основываясь на обновляемых пакетах, но пока вы не привыкли, БУДЬТЕ ОСТОРОЖНЫ!

Удаление пакетов и их зависимостей

Когда я удаляю пакет, я обычно всегда говорю Pacman также удалить его неиспользуемые зависимости, то есть пакеты, не нужные ни одному другому пакету. Это помогает поддерживать мою систему в общем более чистой и свободной от беспорядка. У меня никогда не возникало проблем с использованием Pacman для этого, поэтому деревья зависимостей довольно хорошо поддерживаются. Чтобы удалить пакет и его ненужные зависимости:

pacman -Rs packageName

Удаление неиспользуемых пакетов

Со временем, в результате множества установок и удалений, легко накопить много пакетов, которые вам больше не нужны. Чтобы показать все пакеты, которые были явно установлены (то есть они не были установлены как зависимость каких-либо других пакетов), вы можете использовать следующую команду:

pacman -Qen

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

pacman -Rns $(pacman -Qtdq)

Если вы получите ошибку, которая говорит error: no targets specified, это просто означает, что нет пакетов, которые нужно удалить, соответствующих критериям.

Очистка кеша Pacman

Pacman должен загрузить все пакеты, которые в конечном итоге устанавливаются на вашей системе. Он хранит эти пакеты в кеше, расположенном по адресу /var/cache/pacman/pkg/. Это может занимать довольно много дискового пространства с течением времени, и если вы работаете на встроенной системе или просто беспокоитесь о том, сколько дискового пространства вы используете, есть несколько методов очистки кеша в зависимости от ваших целей. БУДЬТЕ ВНИМАТЕЛЬНЫ: полная очистка кеша означает, что вы не сможете легко откатиться на более старую версию установленного программного обеспечения, так как очистка его из кеша удалит его из вашей системы. Я представлю метод ниже, чтобы более осторожно очистить кеш, так чтобы вы не удаляли ВСЕ старые версии.

Метод 1: Очистка ВСЕГО кеша (ОСТОРОЖНО!)

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

pacman -Sc

Я предостерегаю вас ПОСЛЕДНИЙ РАЗ, назад от этого пути не вернуться, кеш пропал.

Метод 2: Поддержание некоторых версий

Теперь, если вы не хотите жить на грани и хотите очистить кеш более безопасным способом, не удаляя ВСЕ, вам, вероятно, следует использовать этот метод. Существует встроенный инструмент, который является частью пакета pacman, называемый paccache. По умолчанию paccache удалит все, кроме последних ТРЕХ версий пакета, так что обычно это хорошая идея делать именно так. Кроме того, вывод очень полезен и показывает, сколько места было освобождено:

[jonathan@zabaglione ~]$ paccache -r
==> Требуется повышение привилегий
[sudo] пароль для jonathan: 

==> завершено: 233 пакета удалено (освобождено дискового пространства: 511.94 MiB)

Если вы хотите также удалить все закэшированные версии неустановленных пакетов, вы можете запустить paccache так:

paccache -ruk0

Откат на более старую версию пакета

Периодически наступает время в жизни каждого хорошего пользователя Linux, когда обновление пакета ломает что-то важное. Ошибки могут просочиться и иногда попасть в вашу операционную систему, или, возможно, вы делаете что-то особенное, что требует очень конкретной версии пакета, и, оops, вы случайно обновились до самой новой версии! Следующее предполагает, что у вас есть нужная версия в кеше пакетов, упомянутом выше, но если нет, загрузка правильной версии и указание pacman на нее должны дать желаемые результаты. Конечно, не забудьте заменить “name” и “package” на фактический пакет, который вы пытаетесь изменить:

pacman -U /var/cache/pacman/pkg/name-version.pkg.tar.gz

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.