Общее обслуживание систем Arch Linux
На этой странице
- Обновление списка зеркал
- Поддержание точного времени
- Проверка часового пояса в вашей установке Arch Linux
- Установка и настройка NTP
- Способ 1. Очистка ВСЕГО кеша (ВНИМАНИЕ!)
- Метод 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 должны дать желаемые результаты. Конечно, не забудьте заменить \имя\ и \пакет\ фактическим пакетом, которым вы обучаетесь управлять: