Как обновить arch linux через терминал

Обновлено: 01.07.2024

Для установки одного пакета или списка пакетов (включая зависимости) используйте следующую команду:

Для установки списка пакетов при помощи поиска по регулярному выражению (смотрите раздел Операции и синтаксис Bash и эту ветку форума):

Если пакет имеет несколько версий в разных репозиториях (например, в extra и testing), можно указать, откуда именно следует установить пакет:

Установка группы пакетов

Некоторые пакеты объединены в группы пакетов, и они могут быть установлены одновременно. Например, при выполнении команды:

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

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

— будут выбраны все пакеты в диапазоне с 1 по 10, а также 15;

— будут выбраны все пакеты, кроме входящих в диапазон с 5 по 8, а также 2.

Чтобы увидеть список пакетов, принадлежащих к группе gnome, выполните:

Обратите внимание: Если пакет в списке уже установлен, он будет переустановлен даже если была установлена последняя версия. Это поведение можно изменить опцией --needed.

Удаление пакетов

Для удаления пакета без удаления установленных зависимостей:

Для удаления пакета со всеми зависимостями, не используемыми другими установленными пакетами:

Для удаления пакета, его зависимостей и всех пакетов, зависящих от целевого пакета:

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

Для удаления пакета, который требуется другому пакету, без удаления зависимого пакета:

pacman создает резервные копии конфигурационных файлов удаляемых приложений и добавляет к ним расширение .pacsave. Если вы хотите удалить и эти файлы, используйте ключ -n:

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

Обновление пакетов

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

Запросы к базам данных пакетов

pacman с помощью флага -Q может искать пакеты в локальной базе данных:

а с помощью флага -S — в базе данных, синхронизированной с репозиториями:

pacman умеет искать пакеты в базе данных как по названиям, так и по описаниям:

Для поиска среди установленных пакетов:

Для отображения подробной информации об указанном пакете:

и для установленных пакетов:

Использование сразу двух флагов -i позволит просмотреть список резервных копий файлов и список измененных файлов:

Для получения списка файлов установленного пакета:

Для неустановленных пакетов используйте pkgfile.

Чтобы проверить наличие файлов, установленных пакетом:

Использование сразу двух флагов k выполнит более тщательную проверку.

Чтобы узнать, какому пакету принадлежит нужный файл:

Для получения списка пакетов, которые больше не требуются как зависимости (пакеты, которые могут быть безопасно удалены или "осиротевшие" пакеты):

Для отображения пакетов, которые были установлены явно и от которых не зависят другие пакеты:

Для отображения зависимостей в виде дерева:

Для получения списка пакетов, которые зависят от конкретного установленного пакета, можно использовать утилиту whoneeds из состава пакета pkgtools:

или pactree c флагом -r:

Очистка кэша пакетов

pacman сохраняет скачиваемые пакеты в каталоге (/var/cache/pacman/pkg/) и не удаляет их файлы автоматически, поэтому следует время от времени самостоятельно чистить этот каталог, чтобы предотвратить его разрастание.

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

Делайте это только в том случае, если у вас есть определенная уверенность, что установленные пакеты стабильны и вам не потребуется откат версии, поскольку данная команда удалит все старые версии из каталога кэша, оставив только те, которые установлены в системе на данный момент. Сохранение более старых версий пакетов может пригодиться в тех случаях, когда обновление приводит к неправильной работе системы или отдельных программ. Если не следовать этому совету, может возникнуть ситуация, в которой пользователь будет вынужден использовать альтернативный источник устаревших пакетов, такой как Arch Rollback Machine.

Также есть возможность полностью очистить каталог кэша при помощи команды pacman -Scc, однако ее использование считается плохой практикой, так как, в дополнение к вышесказанному, в случае необходимости вы не сможете переустановить пакет непосредственно из директории кэша, и вам придется скачивать его заново. Настоятельно не рекомендуется использовать эту команду, за исключением случаев, когда у вас есть острая потребность в освобождении дискового пространства.

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

Команда paccache, предоставляемая пакетом pacman, по умолчанию удаляет из кэша все версии каждого пакета, кроме трех недавно использовавшихся:

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

Для просмотра всех опций смотрите paccache -h.

Альтернативный вариант — использование пакета pkgcachecleanAUR из AUR:

Дополнительные команды

Обновление системы и установка списка пакетов (за одну операцию):

Установить локальный пакет не из репозитория (например, для пакетов из AUR:

Список пакетов

Список явно установленных пакетов:

Перечислить все иностранные пакеты (как правило, ручную загруженные и установленные):

Список всех родных пакетов (установленные из синхронизируемой базы (баз) данных):

Список всех пакетов по регулярному выражению:

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

С размером

Для получения списка пакетов, отсортированных по размеру, что может быть полезно, когда вы освобождаете место на вашем жёстком диске:

  • Установите expac и запустите
  • Запустите pacgraph с опцией -c.

Для списка размера загрузки нескольких пакетов (чтобы вывести все пакеты, не указывайте название каких-либо пакетов):

Для получения списка явно установленных пакетов, которых нет ни в репозитории base, ни в base-devel, с размером и описанием:

Последние установленные пакеты

Установите expac и запустите

Все пакеты, которые не являются чьей-либо зависимостью

Если вы хотите сгенерировать список всех установленных пакетов, которые не являются чьей-либо зависимостью, вы можете использовать следующий скрипт. Это очень полезно, если вы пытаетесь освободить место на жёстком диске и установили множество пакетов, которые вы можете не помнить. Вы можете просмотреть вывод для поиска пакетов, которые вам больше не нужны.

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

Для списка с описаниями пакетов:

Установленные пакеты, которые не входят в указанную группу или репозиторий

Следующая команда составит список установленных пакетов, которые не входят в base или base-devel, и, таким образом, принадлежат другим репозиториям или могут быть установлены пользователем вручную:

Список всех пакетов, которые не в указанном репозитории (замените repo_name на имя репозитория):

Список всех установленных пакетов, которые в репозитории repo_name:

Построение списка файлов, принадлежащих пакету, с указанием размера

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

Идентификация файлов, не принадлежащих какому-либо пакету

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

  1. Создайте отсортированный список файлов, владение на которые вы хотите проверить:
  1. Создайте отсортированный список файлов, прослеживаемых pacman’ом (и удалите слеши в конце директорий):
  1. Найдите строки, которые есть в первом списке, но отсутствуют во втором:

На практике этот процесс является сложным, поскольку многие важные файлы не являются частью какого-либо пакета (к примеру, сгенерированные в процессе работы, пользовательские конфиги) и т.п. – всё это будет включено в конечный вывод, что сделает сложным процесс отбора файлов для удаления.

Скрипт lostfiles делает выполняет схожие шаги, но включает обширный чёрный список для удаления распространённых ложных срабатываний из вывода.

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

Осиротевшие пакеты

Для рекурсивного удаления сироток и их конфигурационных файлов:

Если осиротевшие пакеты не были найдены, pacman завершит работу с ошибкой: цели не определены. Это ожидаемо, поскольку pacman -Rns не получил аргументов.

Примечание: Начиная с pacman версии 4.2.0 показываются только истинные сиротки. Чтобы pacman также показал пакеты, которые нужны другим пакетам только опционально, дважды укажите флаг -t/--unrequired:

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

Явно установленные

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

Для показа списка явно установленных пакетов, которые доступны в официальных репозиториях:

Для показа списка явно установленных пакетов, которые не доступны в официальных репозиториях:

Удаление всего, кроме группы base

Если вдруг понадобилось удалить все пакеты, кроме группы base, попробуйте следующую строку:

Получение списка зависимостей нескольких пакетов

Зависимости сортируются в алфавитном порядке, дубли удаляются. Также вы можете использовать pacman –Qi для небольшого улучшения времени ответа. Но вы не сможете запрашивать так много пакетов. Ненайденные пакеты просто опускаются (поскольку 2>/dev/null).

В качестве альтернативы вы можете использовать expac:

Получение списка изменённых файлов резервных копий

Если вы хотите сделать резервную копию конфигурационных файлов вашей системы, вы можете скопировать все файлы в /etc/, но обычно нам интересны только файлы, в которых были сделаны изменения. Модифицированные резервные файлы могут быть просмотрены следующей командой:

Запуск этой команды с разрешениями рута станет гарантией того, что файлы, читаемые только рутом (к примеру /etc/sudoers), включены в вывод.

Логотип Arch Linux на розово-белом градиенте

Проект Ubuntu

Пришло время обновить вашу систему Arch Linux? Независимо от того, используете ли вы чистый Arch или дистрибутив на основе Arch, такой как Manjaro и Garuda Linux, мы покажем вам, как безопасно обновить вашу систему с помощью одной или двух простых команд.

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

Большинство дистрибутивов на основе Arch используют Пакман диспетчер пакетов для загрузки и установки обновлений, процесс, технически называемый «синхронизацией». Вы будете использовать команды pacman, чтобы ваши пакеты синхронизировались и работали.

Примечание. Для выполнения этих инструкций вашей учетной записи требуется доступ sudo.

Применить обновление системы в Arch Linux

Чтобы начать обновление всех установленных пакетов, откройте любое приложение терминала и введите следующую команду:

sudo pacman -Syu

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

Войти "sudo pacman -Syu" в терминале

Затем вам будет предложено подтвердить, что вы хотите применить полное обновление. Введите y и нажмите Enter для подтверждения или используйте n для отмены.

Введите y и нажмите Enter, чтобы подтвердить обновление.

Если у вас есть пакеты, которые, как вы подозреваете, повреждены, вы можете принудительно загрузить базу данных вместе с обновлением, чтобы решить эти проблемы. Даже если обновления недоступны, pacman проверит целостность ваших установленных пакетов. Чтобы это произошло, добавьте к строке второй y.

sudo pacman -Syyu

Как обновить определенный пакет в Arch Linux

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

sudo pacman -S имя_пакета Предупреждение: мы не рекомендуем обновлять определенные пакеты, часто игнорируя другие доступные обновления. Из-за процесса скользящего выпуска Arch обновления с выбором вишни могут вызвать проблемы.

Если вы не знаете, как называется пакет, вы можете выполнить поиск в установленных пакетах с помощью флага -Qs.

pacman -Qs строка

Обязательно замените строку вашим поисковым запросом. Будет произведен поиск как по именам, так и по описаниям пакетов, поэтому вы легко найдете то, что ищете.

Все существующие дистрибутивы 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 [опция] <имя пакета>

Вот основные опции программы, которые мы будем использовать:

  • -S – установка программ в archlinux;
  • -Sw - скачать пакет но не устанавливать;
  • -U - установить локальный пакет;
  • -s – поиск пакета;
  • -i – информация;
  • -u – обновить пакеты;
  • -y – обновить списки пакетов из репозиториев;
  • -dd – игнорирование зависимостей;
  • -g – запрос информации о группе;
  • -l – вывод пакетов в виде списка;
  • -o – вывод в файл;
  • -R – удаление;
  • -Q – запрос к базе данных установленных пакетов;
  • -F – поиск по файлам;
  • -D – задание и изменение цели установки уже имеющегося пакета;
  • -R - удалить пакет;
  • -Rn - удалять резервные копии конфигурационных файлов;
  • -Rs - удалять зависимости пакета;

Это основные опции, которые будут применяться в этой инструкции.

Установка пакетов ArchLinux

Сначала рассмотрим как выполняется установка программ ArchLinux с помощью Pacman из официальных репозиториев, а потом остановимся на пользовательском репозитории AUR. Теперь рассмотрим основные команды pacman archlinux.

Установка пакетов Pacman

Опции для pacman при использовании комбинируются в одну фразу, таким образом, например, для обновления репозиториев и обновления ОС команда будет выглядеть так:

sudo pacman -Suy


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

Установка конкретного пакета:

sudo pacman -S [имя пакета]


Удаление конкретного пакета:

sudo pacman -R [имя пакета]

Принудительное удаление конкретного пакета, с игнорированием зависимостей:

sudo pacman -Rdd [имя пакета]


Поиск пакета в репозиториях:

pacman -Ss [имя пакета]


Получение информации о пакете:

pacman -Si [имя пакета]


Поиск только среди установленных пакетов:

pacman -Qs [имя_пакета]


Просмотр списка всех установленных пакетов:


Просмотр списка файлов пакета:

pacman -Ql [имя_пакета]


sudo pacman -Scc


Установка пакетов из AUR

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

Теперь вы можете использовать те же опции что и в утилите pacman в pacaur чтобы пользоваться AUR, например, поиск пакета:

pacaur -Ss firefox


pacaur -S firefox

Графический интерфейс Pacman

Для любителей пользоваться графическим интерфейсом вместо терминала в ArchLinux есть утилита pamac. Это простой менеджер приложений, чем-то похожий на стандартный менеджер приложений Ubuntu:


Для установки пакета достаточно открыть для него контекстное меню и нажать "Установить":


Удаление пакетов выполняется тем же образом.

Выводы

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

Arch Linux ‒ это один из немногих дистрибутивов Linux, использующих модель роллинг-релизов. Это означает, что в нем доступны самые последние версии пакетов. Это одновременно является его как преимуществом так и недостатком. Пересесть на него меня заставила необходимость: мое компьютерное железо (процессор ryzen 5 2600 и видеоадаптер rx 590) оказались не совместимы с версией Linux Kernel младше 4.20.

image

На самом деле все не так плохо, но неприятные инциденты имеют место хотя и очень редко.

Качаем образ и записываем его с помощью команды:

Где sdX – имя нашего USB устройства. Перегружаемся после удачного завершения операции.

В Windows для создания загрузочной флешки можно использовать Rufus. При этом образ лучше записывать в dd режиме.

При загрузке системы нажимаем F2 или Del (зависит от производителя материнской платы). Во вкладке BIOS в приоритете загрузки делаем первым наше USB-устройство. Нажимаем F10 и сохраняем настройки.

При подключении от кабеля ничего настраивать не надо. Настройка wifi требует ввода пары команд:

Следует отметить, что не все usb wifi адаптеры гараниторованно поддерживаются. Например, у меня не захотел работать dexp wfa 301, а вот с tp-link все ок.

Для начала посмотрим все доступные устройства:

Создадим новый раздел:

В меню fdisk вводим n для создания нового раздела, порядковый номер раздела, потом начальное и конечные смещения. При задании конечного смещения можно отрицательное значение, например, -10G , так мы оставим свободными 10 Гб в конце диска. Для записи изменений на жесткий диск вводим w и выходим - q .

Теперь нужно разметить раздел по LVM. Касательно LVM: единственное удобство в нем для меня – это возможность динамически менять размер разделов. Самая частая проблема, которая у меня была раньше – это то, что я не угадывал размер для корня. Когда в нем кончалось место, я с установочной флешки через gparted пытался отщепнуть от виндового раздела кусок (а у меня разделы всегда шли так: recovery, efi, reserved, windows, root, home), из этого куска создавал временный раздел, копировал в него файлы с хомяка, удалял хомяка, изменял размер корневого, опять создавал хомяка и из временного раздела копировал в него файлы, потом удалял временный раздел, расширял виндовый, правил /etc/fstab … А с LVM я могу просто выполнить пару команд: ужать хомяка, расширить корневой, причем, на лету. Но эксперты могут возразить: «Хомяк на отдельном разделе не нужен!» — Да, если хочешь потерять все данные при переустановке.

Средства управления пакетами Arch Linux подобны другим современным дистрибутивам Linux. В данном руководстве речь пойдет об общих операциях управления пакетами.

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

Поиск пакетов

Ориентированные на краткость (а не интуитивность), большинство операций управления пакетами в Arch Linux имеют формат:

К примеру, обычна команда поиска репозиториев pacman выглядит так:

pacman -Ss <package>

Как и большинство команд pacman, данная команда не особенно очевидна. Кроме того, pacman поставляется с утилитой pacsearch, которая работает так же, но имеет некоторые преимущества над pacman-Ss:

  • цветовое выделение
  • категории установленных пакетов (local)

В некоторых случаях данному критерию поиска будет соответствовать несколько пакетов (особенно при использовании AUR helper типа yaourt). Регулярные выражения могут помочь сузить список. Например, нужно найти все, что связано с инструментом ack. Стандартный поиск неизбежно вернет много результатов, которые можно отсортировать (по словам package, hack или playback).

Тем не менее, не все пакеты начинаются с ack. Символ вставки (^) перед поисковым словом выведет только пакеты, которые начинаются с этого слова. Это работает с pacsearch, pacman и yaourt.

Чтобы регулярное выражение работало должным образом, его нужно взять в кавычки.

Чтобы получить список установленных пакетов, соответствующих поисковому запросу, передайте результат в grep local. Опция –А 1 говорит grep включить одну строку после каждого совпадения (в данном случае это описание пакета).

pacsearch linux | grep local -A 1

Кроме того, можно использовать команду pacman –Qs, чтобы получить результат без цветового выделения.

pacman -Qs linux

Чтобы команда pacman –Ss выводила цветные результаты, раскомментируйте Color в файле /etc/pacman.conf. Цветовое выделение команды pacman отличается от pacsearch; потому можно получить цветной результат при помощи обеих команд и выбрать более удобный.

Получение информации о пакете

Команда pacman -Qi выводит на экран базовую информацию об установленном пакете:

Без аргументов данная команда выводит все пакеты системы. Кроме того, эта команда позволяет получить специализированную информацию об установленных пакетах.

Например, чтобы получить название каждого пакета и его размер:

pacman -Qi | grep -e "Name" -e "Installed Size"
Name : a52dec
Installed Size : 244.00 KiB
Name : aalib
Installed Size : 768.00 KiB
.

Команда pacman -Qi выводит информацию об установленных пакетах, а команда pacman –Si запрашивает в базе данных обширную информацию о пакете.

Команда pacman -Ql выводит список файлов, связанных с искомым пакетом.

pacman -Ql vi
vi /usr/
vi /usr/bin/
vi /usr/bin/edit
vi /usr/bin/ex
vi /usr/bin/vedit
vi /usr/bin/vi
.

pacman -Qlq vi
/usr/
/usr/bin/
/usr/bin/edit
/usr/bin/ex
/usr/bin/vedit
/usr/bin/vi
.

Команду pacman -Qlq | grep bin можно использовать, чтобы найти все файлы данного пакета, которые находятся в папке bin (и потому, вероятнее всего, являются исполняемыми). Это удобно, если команда, связанная с пакетом, отличается от имени пакета.

pacman -Qql pacman | grep bin
/usr/bin/
/usr/bin/bacman
/usr/bin/checkupdates
/usr/bin/cleanupdelta
/usr/bin/makepkg
/usr/bin/paccache
/usr/bin/pacdiff
/usr/bin/paclist
/usr/bin/paclog-pkglist
/usr/bin/pacman
/usr/bin/pacman-db-upgrade
/usr/bin/pacman-key
/usr/bin/pacman-optimize
/usr/bin/pacscripts
/usr/bin/pacsearch
/usr/bin/pacsort
/usr/bin/pacsysclean
/usr/bin/pactree
/usr/bin/pkgdelta
/usr/bin/rankmirrors
/usr/bin/repo-add
/usr/bin/repo-elephant
/usr/bin/repo-remove
/usr/bin/testdb
/usr/bin/testpkg
/usr/bin/updpkgsums
/usr/bin/vercmp

Хранение пакетов

Самый простой способ узнать, какие из хранящихся пакетов занимают больше всего места в системе – это использовать команду pacsysclean, которая поставляется вместе с pacman.

Утилита pacgraph имеет более сложный вывод; она создает графическое отображение зависимостей отдельных пакетов в формате SVG и PNG.

Утилиту pacgraph можно найти в репозитории сообщества.

sudo pacman -S pacgraph

Команда pacgraph -c выведет результат в консоль, подобно pacsysclean. При большом количестве пакетов выход pacgraph может получиться достаточно громоздким, так как он (в отличие от pacsysclean) сортируется от большего к меньшему. В таком случае выход можно передать в head, чтобы оставить только самые объемные пакеты.

pacgraph -c | head
Autodetected Arch.
Loading package info
Total size: 730MB
114MB linux
103MB libtool
84MB pacgraph
40MB imagemagick
25784kB ppl
22264kB nmap
17295kB pkgfile

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

Команда pacgraph, запущенная без аргументов, создает файл SVG и по возможности PNG.

Примечание: хотя утилита pacgraph рекомендует открывать файл PNG после установки ImageMagick и Libpng, на момент написания данной статьи она не генерирует PNG без редактора Inkscape, который имеет довольно много зависимостей.

Загрузка и установка пакетов

Стандартный способ установки или обновления пакета – команда pacman –S.

sudo pacman -S <package>

Пакеты часто имеют аналогичный шаблон в своих названиях. Скобки могут использоваться в качестве ярлыка.

sudo pacman -S lua-

Иногда нужно просто загрузить пакет для архивных целей, не устанавливая его. Команда pacman-Sw скачает пакет в папку кэша.

sudo pacman -Sw <package>

Если пакет уже загружен или известен его url, его можно установить напрямую:

sudo pacman -U <package_path>

Обновление пакетов

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

Кроме того, pacman может вывести список устаревших пакетов.

К сожалению, этот список не отображает версию пакета в репозитории, так что определить, насколько устарел каждый пакет, невозможно. В случае необходимости используйте сторонние менеджеры пакетов или напишите скрипт, который связывает результаты команд pacman -Qi и pacman –Si и сможет вывести нужную информацию.

Чтобы получить версии пакетов с помощью команд pacman -Qi или pacman –Si, используйте регулярное выражение:

pacman -Qi linux | grep "Version" | sed 's/^Version\s*:\s//'
3.8.4-1

Затем напишите скрипт, отображающий пакеты и версии одновременно.

for i in $(pacman -Qqu)
do
printf "$i: "
printf "$(pacman -Qi "$i" | grep 'Version' | sed 's/^Version\s*:\s//') "
echo "$(pacman -Si "$i" | grep 'Version' | sed 's/^Version\s*:\s//')"
done

Менеджер пакетов pacman позволяет обновлять все пакеты сразу, но делать этого не рекомендуется, поскольку Arch является роллинг-релизом (rolling release distribution). При возникновении каких-либо проблем может уйти немало времени н то, чтобы установить их причины.

sudo pacman -Syu

Даунгрейд пакетов

Официально Arch Linux не поддерживает устаревшие пакеты. Вместо этого используйте кэш пакетов, а также Arch Rollback Machine и т.п.

Кэш пакетов

Каждый загруженный при помощи pacman пакет хранится в /var/cache/pacman/pkg.

ls /var/cache/pacman/pkg | grep linux
linux-3.11.6-1-x86_64.pkg.tar.xz
linux-3.9.7-1-x86_64.pkg.tar.xz
.

Чтобы вернуть версию пакета в кэше, просто установите этот пакет.

pacman -U <путь_к_файлу_в_кэше>

Что такое Arch Rollback Machine?

Пакеты ARM можно установить удаленно с помощью pacman –U:

Просматривать устаревшие пакеты на ARM не очень удобно. К счастью, для этого существуют специальные инструменты:

Они ищут устаревшие версии в кэше и ARM.

downgrade <пакет>
downgrader <пакет>

Оба инструмента можно найти в AUR, следовательно, проще всего установить их при помощи yaourt.

Примечание: ARM является неофициальным проектом, который однажды был закрыт; потому лучше не чистить кэш на случай если ARM снова перестанет работать. Чтобы развернуть собственный ARM, используйте проект NodeJS на github.

Удаление пакетов

Следующая команда удаляет пакет только при условии, что другие программы не зависят от него; при этом зависимости пакета удалены не будут.

sudo pacman -R <пакет>

Следующая команда удаляет пакет, от которого не зависят другие программы, а также те его зависимости, которые не нужны другим пакетам.

sudo pacman -Rs <пакет>

Данная команда просто стирает пакет из системы и переустанавливает его, если простой переустановки недостаточно.

sudo pacman -Rdd <пакет>

Неофициальные пакеты

Основная часть пакетов Arch Linux находится в репозитории Arch User Repository. Такие пакеты лучше всего устанавливать при помощи инструментов AUR Helpers.

Читайте также: