Поиск по сайту:

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


На этой странице

  1. Обновление списка зеркал
  2. Поддержание точного времени
    1. Проверка часового пояса в вашей установке Arch Linux
    2. Установка и настройка NTP

    1. Способ 1. Очистка ВСЕГО кеша (ВНИМАНИЕ!)
    2. Метод 2. Сохранение некоторых версий

    Поддерживать установку 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 для удаления всех \#s\, обозначающих комментарии , с помощью следующих команд:

    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, которая покажет нам много полезной информации о времени и дате в системе.

    []$ sudo timedatectl
          Local time: Sun 2015-07-05 18:30:18 MDT
      Universal time: Mon 2015-07-06 00:30:18 UTC
            RTC time: n/a
           Time zone: America/Denver (MDT, -0600)
     Network time on: no
    NTP synchronized: no
     RTC in local TZ: no

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

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

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

    sudo pacman -S ntp

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

    # Please consider joining the pool:
    #
    #     http://www.pool.ntp.org/join.html
    #
    # For additional information see:
    # - https://wiki.archlinux.org/index.php/Network_Time_Protocol_daemon
    # - http://support.ntp.org/bin/view/Support/GettingStarted
    # - the ntp.conf man page
    
    # Associate to Arch's NTP pool
    server 0.arch.pool.ntp.org
    server 1.arch.pool.ntp.org
    server 2.arch.pool.ntp.org
    server 3.arch.pool.ntp.org
    
    # By default, the server allows:
    # - all queries from the local host
    # - only time queries from remote hosts, protected by rate limiting and kod
    restrict default kod limited nomodify nopeer noquery notrap
    restrict 127.0.0.1
    restrict ::1
    
    # Location of drift file
    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

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

    [ ~]# pacman -Syu
    :: Synchronizing package databases...
     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%
    :: Starting full system upgrade...
    resolving dependencies...
    looking for conflicting packages...
    
    Packages (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
    
    Total Download Size:   11.29 MiB
    Total Installed Size:  56.65 MiB
    Net Upgrade Size:       0.11 MiB
    
    :: Proceed with installation? [Y/n] 

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

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

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

    pacman -Rs packageName

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

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

    pacman -Qen

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

    pacman -Rns $(pacman -Qtdq)

    Если вы получаете сообщение об ошибке Ошибка: цели не указаны, это просто означает, что нет пакетов для удаления, соответствующих критериям.

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

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

    Способ 1: Очистка ВСЕГО кеша (ВНИМАНИЕ!)

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

    pacman -Sc

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

    Способ 2. Сохранение некоторых версий

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

    [ ~]$ paccache -r
    ==> Privilege escalation required
    [sudo] password for jonathan: 
    
    ==> finished: 233 packages removed (disk space saved: 511.94 MiB)

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

    paccache -ruk0

    Откат к более старой версии пакета

    Иногда в жизни каждого хорошего пользователя Linux наступает момент, когда обновление пакета ломает что-то важное. Ошибки могут проникать сквозь трещины и иногда попадать в вашу операционную систему, или, может быть, вы делаете что-то особенное, для чего требуется очень специфическая версия пакета, и, к сожалению, вы случайно обновились до последней версии! Далее предполагается, что у вас есть нужная версия в кэше пакетов, упомянутом выше, но если нет, загрузка правильной версии и указание на нее pacman должны дать желаемые результаты. Конечно, не забудьте заменить \имя\ и \пакет\ фактическим пакетом, которым вы обучаетесь управлять: