Как обновить Arch Linux
Проект Ubuntu
Пришло время обновить вашу систему Arch Linux? Независимо от того, используете ли вы чистый Arch или дистрибутив на основе Arch, такой как Manjaro и Garuda Linux, мы покажем вам, как безопасно обновить вашу систему с помощью одной или двух простых команд.
В любом дистрибутиве Linux важно поддерживать пакеты в актуальном состоянии. Арка работает по модели скользящего выпуска, доставляя самые современные обновления для вашей виртуальной двери, как только они будут готовы. По этой причине необходимы частые обновления (в сочетании с эффективным резервным копированием), чтобы избежать поломки системы и поврежденных пакетов.
Большинство дистрибутивов на основе Arch используют Пакман диспетчер пакетов для загрузки и установки обновлений, процесс, технически называемый «синхронизацией». Вы будете использовать команды pacman, чтобы ваши пакеты синхронизировались и работали.
Примечание. Для выполнения этих инструкций вашей учетной записи требуется доступ sudo.
Применить обновление системы в Arch Linux
Чтобы начать обновление всех установленных пакетов, откройте любое приложение терминала и введите следующую команду:
Вам будет предложено ввести пароль, прежде чем команда сможет продолжить. Эта команда проверяет наличие доступных обновлений. Если они есть, в нем будут перечислены пакеты вместе с номерами их новых версий.
Затем вам будет предложено подтвердить, что вы хотите применить полное обновление. Введите y и нажмите Enter для подтверждения или используйте n для отмены.
Если у вас есть пакеты, которые, как вы подозреваете, повреждены, вы можете принудительно загрузить базу данных вместе с обновлением, чтобы решить эти проблемы. Даже если обновления недоступны, pacman проверит целостность ваших установленных пакетов. Чтобы это произошло, добавьте к строке второй y.
Как обновить определенный пакет в Arch Linux
Если вы хотите обновить только конкретный пакет, используйте ту же команду, которую вы использовали для его установки, заменив package_name своим выбором.
Обязательно замените строку вашим поисковым запросом. Будет произведен поиск как по именам, так и по описаниям пакетов, поэтому вы легко найдете то, что ищете.
System maintenance (Русский)
Регулярное обслуживание системы необходимо для правильной работы Arch в течение определенного периода времени. Своевременное обслуживание является привычной практикой многих пользователей.
Contents
Проверка на наличие ошибок
Неудачный запуск служб systemd
Проверьте, возможно какие-либо службы systemd неудачно запустились:
Файлы журналов
Смотрите Xorg (Русский)#Решение проблем о том где и как получить информацию о журналах ошибок Xorg.
Резервное копирование
Смотрите различные приложения синхронизации и программ резервного копирования которые подойдут в вашем случае. Также смотрите восстановление системы.
Резервное копирование можно автоматизировать с помощь Systemd/Таймеры.
Файлы настроек
Перед внесением изменений в файлы настроек, создайте резервную копию. Таким образом, вы можете вернуться к рабочей версии в случае возникновения проблем. Такие редакторы как vim и emacs могут сделать это автоматически, а также такая утилита как etckeeper держат /etc в системе контроля версий (VCS).
Список установленных приложений
Ведите список всех установленных пакетов, а если полная переустановка неизбежна, то легче будет воссоздать первоначальное окружение.
База данных Pacman
Заголовки LUKS
Переодически проверяйте и синхронизируйте резервные копии LUKS-шифрованные заголовки разделов, особенно если ключевые фразы были аннулированы. Смотрите Dm-crypt/Device encryption#Backup and restore.
Обновление системы
Если в системе есть пакеты из AUR, внимательно обновите все из них.
Избегайте определенных команд pacman
Частичные обновления не поддерживаются
Arch Linux является роллинг-релиз дистрибутивом. Это означает, что когда новая версия библиотек поступит в репозиторий, разработчики и доверенные пользователи пересоберут все пакеты в репозиториях, которые должны быть пересобраны с библиотеками. Например, если два пакета зависят от той же библиотеки, обновление только одного пакета может также обновить библиотеку (в качестве зависимости), которая может сломать другой пакет, который зависит от старой версии библиотеки.
Баш скрипт checkupdates, который входит в пакет pacman, обеспечивает безопасный способ проверки наличия обновлений для установленных пакетов, одновременно без запуска обновления системы. Смотрите также BBS ## 1563725.
Прочитайте перед обновлением системы
Перед обновлением Arch, всегда читайте последние Новости Arch, чтобы узнать, есть ли какие-либо основные программные изменения или настройки с последними пакетами. Перед обновлением основного программного обеспечения (например, kernel, xorg, systemd, или glibc ) на новую версию, посмотрите соответствующий форум, чтобы увидеть, были ли какие-либо сообщения о проблемах.
Сигналы предупреждений во время обновления
При обновлении системы, не забудьте обратить внимание на оповещающие уведомления, предусмотренных Pacman. Если какие-либо дополнительные действия потребуются от пользователя, сделайте их сразу же. Если предупреждения pacman сбивают с толку, то для получения более подробных инструкций поищите на форумах и просмотрите недавние сообщения новостей.
Как можно быстрее договаривайтесь с новыми файлами настроек
Кроме того, подумайте о других файлах настроек которые вы можете скопировать или создать. Если пакет содержал пример настроек, который был скопирован в ваш домашний каталог, проверьте, был ли создан новый.
Откат сломанных обновлений
Только после того, когда нет никакой информации доступной от Pacman, нет новости на https://archlinux.org.ru/, и нет сообщений на форуме по поводу обновления, рассмотрите возможность обращения за помощью на форум и в IRC, либо «откатите» пакет.
Используйте менеджер пакетов для установки программного обеспечения
Pacman делает работу намного лучше, чем ваше ручное содержание файлов. Если вы устанавливаете пакеты вручную, вы в скором времени, рано или поздно, забудете что вы делали, устанавливали конфликтующее программное обеспечение, устанавливали в неправильное место и т.д. Вместо этого, узнайте, как создать пакет.
Выбирайте драйверы с открытым исходным кодом
Всегда старайтесь использовать драйверы с открытым исходным кодом, прежде чем прибегнуть к проприетарным драйверам. Большую часть времени, драйверы с открытым исходным кодом являются более стабильными и надежными, чем проприетарные драйверы. Ошибки драйверов с открытым исходным кодом исправляются более легко и быстро. В то время как закрытые драйверы могут предложить больше функций и возможностей, это может происходить за счет стабильности. Чтобы избежать этой дилеммы, попробуйте выбрать аппаратные компоненты (железо), известные и имеющие развитую поддержку открытых драйверов с полными функциями. Информацию об аппаратном обеспечении с открытым исходным кодом драйверов Linux можно найти на linux-drivers.org.
Будьте осторожны с неофициальными пакетами
Используйте меры предосторожности при использовании пакетов из AUR или неофициальных пользовательских репозиториев. Большинство из них содержатся обычными пользователями, и, следовательно, не могут иметь те же стандарты, что и в официальных репозиториях. Будьте осторожны с вспомогательными утилитами для работы с AUR, которые весьма упрощают установку пакетов AUR. Всегда проверяйте PKGBUILD’ы на вменяемость, признаки ошибок или вредоносного кода, прежде чем собрать и/или установить пакет.
Для упрощения технического обслуживания, ограничьте количество используемых неофициальных пакетов. Делайте периодические проверки на актуальность их использования, и удалите (или замените их на официальный аналог) либо на другие. Смотрите полезные команды Pacman/Советы и приёмы#Обслуживание.
Обновите список зеркал (mirrorlist)
Обновите список зеркал pacman, так как качество зеркал может меняться со временем, и некоторые из них могут перейти в офлайн или их скорость загрузки может ухудшиться. Смотрите Зеркала.
Очистите файловую систему
При поиске файлов для удаления, важно найти файлы, которые занимают большую часть дискового пространства. Программы, которые вам помогут можно найти в:
Старые файлы настроек
Старые файлы настроек могут конфликтовать с новыми версиями программного обеспечения, или портиться со временем. Периодически удаляйте ненужные файлы настроек, особенно в вашей домашней папке и
Посмотрите на следующие папки:
Для большей информации смотрите XDG Base Directory support.
Чтобы сохранить домашний каталог чистым от временных файлов, созданных в неправильном месте, будет хорошо иметь список нежелательных файлов и удалять их регулярно, например, с помощью rmshit.py.
rmlint может быть использован для поиска и при необходимости удалении дубликатов файлов, пустых файлов, рекурсивных пустых каталогов и сломанных символических ссылок.
Неиспользуемые пакеты
Удалите неиспользуемые пакеты из системы, тем самым освободив место на диске и упростив обслуживание.
Кэш пакетов
Сломанные симлинки
Старые, сломанные символьные ссылки могут находится в вашей системе; вы должны удалить их. Найти примеры того как их найти указаны тут (Англ.) и там (Англ.).
Для быстрого просмотра списка всех сломанных символьных ссылок в вашей системе, воспользуйтесь:
Затем проверьте и удалите ненужные записи из этого списка.
Советы и приёмы
Следующие советы, как правило не требуется, но некоторые пользователи могут счесть их полезными.
Используйте проверенные программные пакеты
Роллинг-релиз Arch даёт преимущество пользователям, которые хотят попробовать новейшие функции и получить последние обновления как можно скорее, но это может сделать обслуживание системы более трудным. Для упрощения технического обслуживания и повышения стабильности, старайтесь избегать ультрасовременное программное обеспечение и устанавливайте только зрелое и проверенные программное обеспечение. Такие пакеты имеют меньше шансов получить сложные обновления, такие как основные изменения настроек или удаление особенностей. Предпочитайте программное обеспечение, которое имеет сильное и активное сообщество разработчиков, а также большое количество компетентных пользователей, для того чтобы упростить поддержку в случае возникновения проблем.
Избегайте использования тестового (testing) репозитория, даже отдельных пакетов из testing. Эти пакеты являются экспериментальными и не подходят для стабильной системы. Кроме того, избегайте разрабатываемых пакетов, которые собираются непосредственно из апстрима. Они обычно находятся в AUR, и содержат в названии: «dev», «devel», «svn», «cvs», «git», и т.д.
Установите пакет linux-lts
Пакет linux-lts представляет собой альтернативный пакет ядра Arch, и доступен в core репозитории. Эта конкретная версия ядра имеет долгосрочную поддержку (LTS) от апстрима, включая исправления безопасности, и некоторые Бэкпорты. Это будет полезным, если вы предпочитаете стабильность и менее частые обновления ядра, или если вы хотите иметь запасное ядро, в случае если новая версия ядра вызывает проблемы.
Установка пакетов ArchLinux
Все существующие дистрибутивы Linux для того, чтобы осуществлять операции по обновлению ПО и библиотек ОС в основном используют пакетные менеджеры. Пакетный менеджер является ключевой программой, который зачастую и отличает различие одного дистрибутива Linux от другого.
Общее описание технологии
Пакетный менеджер pacman является основным признаком дистрибутива ArchLinux. Archlinux pacman предназначен для установки программ и пакетов в дистрибутиве ArchLinux. pacman оперирует пакетами, которые, как и в случае с другими пакетными менеджерами представляют из себя бинарные архивы, содержащие некоторые данные для установки.
Pacman сам по себе может использоваться не только в ArchLinux и его производных, но и в прочих дистрибутивах. Возможна адаптация pacman для использования RPM, а также пакетов прочего типа, несовместимого со стандартным ArchLinux.
Pacman, как и RPM имеет возможность загрузки части пакета при обновлении. При работе pacman зачастую значительно быстрее обрабатывает транзакции, нежели это делает DPKG или RPM.
История разработки ArchLinux
Первые версии ArchLinux на самом деле являлись просто некоторой сборкой LFS, содержащим набор скриптов для сборки и развертывания дистрибутива. Очень долго, для установки самого дистрибутива pacman вообще не использовался, установочный образ содержал специализированную программу, называемую Arch Install Frimewere (AIF).
Сам по себе, дистрибутив в первых своих версиях содержал примитивную скрипт-сборочную пакетную систему, называемую Arch Build System (ABS). Суть такой примитивной пакетной системы заключался в предоставлении быстрого и удобного метода сборки пакетов из исходного кода. Но это не то, что хотел иметь собственно разработчик Arch Linux. По этой причине была разработана утилита pacman, которая и предназначалась для оперирования с уже собранными бинарными пакетами. ABS затем была переназначена для того, чтобы заниматься сборкой пакетов для pacman.
В дальнейшем, ABS в Archlinux позволил создать пользовательский репозиторий рецептов для сборки пакетов, называемый AUR. Из AUR возможна установка пакетов ArchLinux, которых нет даже в официальных репозиториях.
Установка пакетов в ArchLinux
Установка пакетов ArchLinux, их обновление, а также их удаление как мы уже поняли выше, осуществляются при помощи pacman. Данная утилита достаточно проста. Рассмотрим команды ее синтаксис:
$ sudo pacman [опция]
Вот основные опции программы, которые мы будем использовать:
Это основные опции, которые будут применяться в этой инструкции.
Установка пакетов ArchLinux
Сначала рассмотрим как выполняется установка программ ArchLinux с помощью Pacman из официальных репозиториев, а потом остановимся на пользовательском репозитории AUR. Теперь рассмотрим основные команды pacman archlinux.
Установка пакетов Pacman
Опции для pacman при использовании комбинируются в одну фразу, таким образом, например, для обновления репозиториев и обновления ОС команда будет выглядеть так:
Порядок расстановки опций значения не имеет, за исключением только того, что основной ключ, указывающийся большой буквой должен быть первым.
Установка конкретного пакета:
Удаление конкретного пакета:
Принудительное удаление конкретного пакета, с игнорированием зависимостей:
Поиск пакета в репозиториях:
Получение информации о пакете:
Поиск только среди установленных пакетов:
Просмотр списка всех установленных пакетов:
Просмотр списка файлов пакета:
Установка пакетов из AUR
К сожалению, не все пакеты есть в официальных репозиториях, многие вам придется искать пакеты на стороне. Большинство пакетов уже собраны и подготовлены пользователями в репозитории AUR. Для этого можно использовать пакет pacaur. Его можно установить командой:
Теперь вы можете использовать те же опции что и в утилите pacman в pacaur чтобы пользоваться AUR, например, поиск пакета:
Графический интерфейс Pacman
Для любителей пользоваться графическим интерфейсом вместо терминала в ArchLinux есть утилита pamac. Это простой менеджер приложений, чем-то похожий на стандартный менеджер приложений Ubuntu:
Для установки пакета достаточно открыть для него контекстное меню и нажать «Установить»:
Удаление пакетов выполняется тем же образом.
Выводы
В этой статье мы рассмотрели как выполняется установка пакетов ArchLinux различными способами. А также немного поговорили про историю разработки дистрибутива.
Практические примеры использования pacman
Установка пакетов
Установка определенных пакетов
Для установки одного пакета или списка пакетов (включая зависимости) используйте следующую команду:
Для установки списка пакетов при помощи поиска по регулярному выражению (смотрите раздел Операции и синтаксис Bash и эту ветку форума):
Если пакет имеет несколько версий в разных репозиториях (например, в extra и testing), можно указать, откуда именно следует установить пакет:
Установка группы пакетов
Некоторые пакеты объединены в группы пакетов, и они могут быть установлены одновременно. Например, при выполнении команды:
вам будет предложено выбрать пакеты из группы gnome, которые вы хотели бы установить.
Некоторые группы содержат большое количество пакетов, и среди них могут быть всего несколько нужных или ненужных вам. Вместо того, чтобы вводить все необходимые вам номера, иногда удобнее выбрать или исключить отдельные числа или диапазоны чисел при помощи приведенного ниже синтаксиса:
— будут выбраны все пакеты в диапазоне с 1 по 10, а также 15;
— будут выбраны все пакеты, кроме входящих в диапазон с 5 по 8, а также 2.
Чтобы увидеть список пакетов, принадлежащих к группе gnome, выполните:
Перечень доступных групп пакетов можно изучить, посетив https://www.archlinux.org/groups/.
Обратите внимание: Если пакет в списке уже установлен, он будет переустановлен даже если была установлена последняя версия. Это поведение можно изменить опцией —needed.
Удаление пакетов
Для удаления пакета без удаления установленных зависимостей:
Для удаления пакета со всеми зависимостями, не используемыми другими установленными пакетами:
Для удаления пакета, его зависимостей и всех пакетов, зависящих от целевого пакета:
Важно: Эта операция рекурсивна и должна использоваться с осторожностью, так как появляется риск удалить много потенциально необходимых пакетов.
Для удаления пакета, который требуется другому пакету, без удаления зависимого пакета:
Обратите внимание: pacman не удаляет конфигурационных файлов, созданных самими приложениями (например, скрытые файлы (имя которых начинается с точки) в вашем домашнем каталоге).
Обновление пакетов
pacman может обновить все пакеты системы одной командой. Это может занять длительное время в зависимости от того, насколько свежие пакеты установлены в вашей системе. Следующая команда выполнит одновременно синхронизацию локальной базы данных репозиториев и обновление вашей системы (не будут обновлены ‘локальные’ пакеты, отсутствующие в настроенных репозиториях):
Важно: В связи с тем, что Arch является постоянно обновляемым дистрибутивом, пользователям следует помнить, что после или в процессе обновления могут возникнуть непредвиденные трудности. Поэтому обновляться следует с осторожностью. Это означает, что если, например, ожидаются большие изменения или нововведения в обновляемых пакетах, то обновлять систему лучше тогда, когда у вас будет достаточно свободного времени и вы будете готовы к решению возможных проблем.
Запросы к базам данных пакетов
pacman умеет искать пакеты в базе данных как по названиям, так и по описаниям:
Для поиска среди установленных пакетов:
Для отображения подробной информации об указанном пакете:
и для установленных пакетов:
Для получения списка файлов установленного пакета:
Для неустановленных пакетов используйте pkgfile.
Чтобы проверить наличие файлов, установленных пакетом:
Использование сразу двух флагов k выполнит более тщательную проверку.
Чтобы узнать, какому пакету принадлежит нужный файл:
Для получения списка пакетов, которые больше не требуются как зависимости (пакеты, которые могут быть безопасно удалены или «осиротевшие» пакеты):
Для отображения пакетов, которые были установлены явно и от которых не зависят другие пакеты:
Для отображения зависимостей в виде дерева:
Для получения списка пакетов, которые зависят от конкретного установленного пакета, можно использовать утилиту whoneeds из состава пакета pkgtools:
или pactree c флагом -r:
Очистка кэша пакетов
pacman сохраняет скачиваемые пакеты в каталоге (/var/cache/pacman/pkg/) и не удаляет их файлы автоматически, поэтому следует время от времени самостоятельно чистить этот каталог, чтобы предотвратить его разрастание.
Есть встроенная опция для удаления из кэша всех пакетов, не установленных на данный момент:
Делайте это только в том случае, если у вас есть определенная уверенность, что установленные пакеты стабильны и вам не потребуется откат версии, поскольку данная команда удалит все старые версии из каталога кэша, оставив только те, которые установлены в системе на данный момент. Сохранение более старых версий пакетов может пригодиться в тех случаях, когда обновление приводит к неправильной работе системы или отдельных программ. Если не следовать этому совету, может возникнуть ситуация, в которой пользователь будет вынужден использовать альтернативный источник устаревших пакетов, такой как Arch Rollback Machine.
В связи с приведенными выше предостережениями рекомендуется использовать специальный скрипт для более гибкой установки того, какие и как много пакетов будут удалены из кэша:
Команда paccache, предоставляемая пакетом pacman, по умолчанию удаляет из кэша все версии каждого пакета, кроме трех недавно использовавшихся:
Однако, в этом случае paccache не будет проверять, установлен ли пакет на данный момент, оставляя удаленные пакеты в кэше. Для удаления из кэша всех версий удаленных пакетов придется запустить команду еще раз с другими опциями:
Для просмотра всех опций смотрите paccache -h.
Альтернативный вариант — использование пакета pkgcachecleanAUR из AUR:
Дополнительные команды
Обновление системы и установка списка пакетов (за одну операцию):
Скачать пакет, но не устанавливать его:
Установить локальный пакет не из репозитория (например, для пакетов из AUR:
Совет: Чтобы сохранить копию локального устанавливаемого пакета в кэше pacman’а, используйте:
Скачать и установить пакет из удаленного источника (но и не из репозиториев, перечисленных в конфигурационном файле pacman’a):
Список пакетов
Вам может захотеться получить список установленных пакетов с их версией, это полезно при сообщениях об ошибках или обсуждении установленных пакетов.
Список явно установленных пакетов:
Перечислить все иностранные пакеты (как правило, ручную загруженные и установленные):
Список всех родных пакетов (установленные из синхронизируемой базы (баз) данных):
Список всех пакетов по регулярному выражению:
Перечислить пакеты по регулярному выражению с настроенным форматом вывода:
С размером
Для получения списка пакетов, отсортированных по размеру, что может быть полезно, когда вы освобождаете место на вашем жёстком диске:
Для списка размера загрузки нескольких пакетов (чтобы вывести все пакеты, не указывайте название каких-либо пакетов):
Для получения списка явно установленных пакетов, которых нет ни в репозитории base, ни в base-devel, с размером и описанием:
Последние установленные пакеты
Установите expac и запустите
Все пакеты, которые не являются чьей-либо зависимостью
Если вы хотите сгенерировать список всех установленных пакетов, которые не являются чьей-либо зависимостью, вы можете использовать следующий скрипт. Это очень полезно, если вы пытаетесь освободить место на жёстком диске и установили множество пакетов, которые вы можете не помнить. Вы можете просмотреть вывод для поиска пакетов, которые вам больше не нужны.
Примечание: Этот скрипт покажет все пакеты, которые не являются чьей-либо зависимостью, включая явно установленные. Для получения списка пакетов, которые были установлены как зависимости, но больше не требуются какими-либо установленными пакетами, смотрите Осиротевшие пакеты.
Для списка с описаниями пакетов:
Установленные пакеты, которые не входят в указанную группу или репозиторий
Следующая команда составит список установленных пакетов, которые не входят в base или base-devel, и, таким образом, принадлежат другим репозиториям или могут быть установлены пользователем вручную:
Список всех пакетов, которые не в указанном репозитории (замените repo_name на имя репозитория):
Список всех установленных пакетов, которые в репозитории repo_name:
Построение списка файлов, принадлежащих пакету, с указанием размера
Это может быть полезным, когда определённый пакет использует огромное количество места и вы хотите узнать, какой файл больше всего в этом виноват.
Идентификация файлов, не принадлежащих какому-либо пакету
Если ваша система имеет приблудные файлы, которые не принадлежат какому-либо пакету (обычная ситуация, если вы не используете менеджер пакетов для установки программного обеспечения), вам может захотеться найти такие файлы, чтобы удалить их. Обычно процесс осуществления этого следующий:
На практике этот процесс является сложным, поскольку многие важные файлы не являются частью какого-либо пакета (к примеру, сгенерированные в процессе работы, пользовательские конфиги) и т.п. – всё это будет включено в конечный вывод, что сделает сложным процесс отбора файлов для удаления.
Скрипт lostfiles делает выполняет схожие шаги, но включает обширный чёрный список для удаления распространённых ложных срабатываний из вывода.
Удаление неиспользуемых пакетов
Осиротевшие пакеты
Для рекурсивного удаления сироток и их конфигурационных файлов:
Используйте это осторожно, поскольку при этом не берётся в расчёт, является ли пакет опциональной зависимостью, а, следовательно, это приводит к риску удалить пакет, который не является реальной сироткой.
Явно установленные
Поскольку более лёгкие системы легче поддерживать, время от времени будет полезно пробегаться по явно установленным пакетам и вручную отбирайте неиспользуемые пакеты для удаления.
Для показа списка явно установленных пакетов, которые доступны в официальных репозиториях:
Для показа списка явно установленных пакетов, которые не доступны в официальных репозиториях:
Удаление всего, кроме группы base
Если вдруг понадобилось удалить все пакеты, кроме группы base, попробуйте следующую строку:
Получение списка зависимостей нескольких пакетов
Зависимости сортируются в алфавитном порядке, дубли удаляются. Также вы можете использовать pacman –Qi для небольшого улучшения времени ответа. Но вы не сможете запрашивать так много пакетов. Ненайденные пакеты просто опускаются (поскольку 2>/dev/null).
В качестве альтернативы вы можете использовать expac:
Получение списка изменённых файлов резервных копий
Если вы хотите сделать резервную копию конфигурационных файлов вашей системы, вы можете скопировать все файлы в /etc/, но обычно нам интересны только файлы, в которых были сделаны изменения. Модифицированные резервные файлы могут быть просмотрены следующей командой:
Запуск этой команды с разрешениями рута станет гарантией того, что файлы, читаемые только рутом (к примеру /etc/sudoers), включены в вывод.