Как удалять программы arch
pacman (Русский)
Пакетный менеджер pacman — одна из важнейших отличительных особенностей Arch Linux. Он объединил в себе двоичный формат пакетов и лёгкую в использовании систему сборки. Цель pacman — удобное управление пакетами вне зависимости от того, взяты они из официальных репозиториев или же собраны самостоятельно.
pacman поддерживает систему в актуальном состоянии, синхронизируя пакеты с мастер-сервером. Эта клиент-серверная модель позволяет пользователю скачивать/устанавливать пакеты со всеми необходимыми зависимостями всего одной командой.
Contents
Использование
Установка пакетов
Пакет представляет собой архив, в котором содержатся:
pacman, менеджер пакетов Arch Linux, может устанавливать, обновлять и удалять пакеты. Использование pacman имеет ряд преимуществ по сравнению с альтернативным подходом — ручной компиляцией и установкой программ:
Установка отдельных пакетов
Для установки одного пакета или списка пакетов (включая зависимости) используйте следующую команду:
Для установки списка пакетов при помощи поиска по регулярному выражению (смотрите эту ветку форума) выполните:
Если пакет имеет несколько версий в разных репозиториях (например, в extra и testing), можно указать, откуда именно следует установить пакет:
Чтобы установить несколько пакетов с частично совпадающими названиями, используйте фигурные скобки:
Можно использовать несколько уровней вложенных фигурных скобок:
Виртуальные пакеты
Виртуальным называется такой пакет, который сам по себе не существует, но предоставляется другими пакетами. «Виртуальность» позволяет другим пакетам не называть конкретный пакет зависимостью, если есть возможность выбора из нескольких кандидатов. Виртуальный пакет нельзя установить по имени, он добавляется в систему только при установке «предоставляющего» пакета.
Установка группы пакетов
Некоторые пакеты объединены в группы и могут устанавливаться одной командой. Например, после команды
Некоторые группы содержат большое количество пакетов, и среди них могут быть всего несколько нужных или ненужных вам. Вместо того, чтобы вводить все необходимые вам номера, иногда удобнее выбрать или исключить отдельные числа или диапазоны чисел при помощи приведенного ниже синтаксиса:
— будут выбраны все пакеты в диапазоне с 1 по 10, а также 15;
— будут выбраны все пакеты, кроме входящих в диапазон с 5 по 8, а также 2.
Чтобы увидеть список пакетов, принадлежащих к группе gnome, выполните:
Перечень групп можно найти на странице https://archlinux.org/groups/.
Удаление пакетов
Удалить пакет, не удаляя его зависимости:
Удалить пакет и те его зависимости, которые не нужны никаким другим пакетам:
Команда выше может не сработать при удалении группы с другими необходимыми пакетами. В этом случае используйте команду:
Удалить пакет, его зависимости, а также все пакеты, для которых он сам является зависимостью:
Удалить пакет, который требуется другому пакету, без удаления зависимостей:
Обновление пакетов
pacman полностью обновляет систему всего одной командой. Если система давно не обновлялась, процесс может занять довольно длительное время. Приведённая ниже команда одновременно синхронизирует базы данных репозиториев и выполняет обновление системы — при этом пакеты, которых нет в подключённых репозиториях, обновлены не будут:
Запросы к базам данных пакетов
pacman может выполнять поиск в базе данных как среди названий пакетов, так и по их описаниям:
Искать среди установленных пакетов:
Искать пакет в репозиториях по названию файла:
Показать подробную информацию о пакете в репозитории:
То же самое — для установленного пакета:
Вывести список файлов установленного пакета:
Вывести список файлов пакета в репозитории:
Проверить наличие файлов установленного пакета:
Узнать, какому пакету принадлежит файл:
Узнать, какому пакету в репозиториях принадлежит файл:
Вывести список пакетов, которые больше не требуются как зависимости («пакеты-сироты»):
Вывести список пакетов, установленных явно (explicitly) и не являющихся зависимостями для других пакетов:
Другие полезные команды можно найти в статье pacman/Советы и приёмы.
Pactree
Дерево зависимостей пакета можно узнать командой
Структура базы данных
В файле desc хранятся мета-данные пакета — описание, список зависимостей, размер, хэш-сумма MD5 и т.д.
Очистка кэша пакетов
Скачиваемые пакеты pacman сохраняет в каталог ( /var/cache/pacman/pkg/ ). Устаревшие версии пакетов, как и версии пакетов удалённых, автоматически не удаляются. Такой подход обладает следующими преимуществами:
Тем не менее, это означает, что время от времени необходимо чистить этот каталог самостоятельно, чтобы предотвратить его разрастание.
Скрипт paccache(8) из пакета pacman-contrib удаляет из кэша старые версии пакетов, как установленных в системе, так и уже удалённых, по умолчанию оставляя только 3 самые свежие:
При необходимости можно задать количество последних версий, которые нужно оставить. Команда для удаления всех версий, кроме последней:
Чтобы удалить все кэшированные версии удалённых пакетов и неиспользуемые базы данных, выполните:
Чтобы удалить вообще все файлы из кэша, укажите флаг очистки дважды:
pkgcacheclean AUR и pacleaner AUR — две альтернативные программы для очистки кэша.
Дополнительные команды
Скачать пакет без установки:
Установить пакет не из удалённого репозитория, а хранящийся локально (например, предварительно скачанный из AUR):
Сохранить копию локально устанавливаемого пакета в кэше pacman:
Скачать и установить пакет из удаленного источника (но и не из репозиториев, перечисленных в конфигурационном файле pacman):
pacman всегда выводит список пакетов, которые будут установлены или удалены, и спрашивает разрешение пользователя перед выполнением действия.
Причина установки
Для pacman с точки зрения причины установки пакет относится к одной из двух категорий:
При явной установке пакета можно принудительно изменить причину установки на зависимость:
При переустановке пакета текущая причина установки не меняется.
Чтобы изменить причину установки уже установленного пакета, выполните:
Поиск пакета по названию файла
Синхронизировать базу данных файлов:
Найти пакет, содержащий определённый файл (например, файл pacman ):
Процесс установки/обновления/удаления пакета
Каждая операция («транзакция») pacman состоит из пяти последовательных шагов, включая пред- и пост-транзакционные хуки:
Настройка
Глобальные параметры
Сравнение версий пакетов перед обновлением
Параллельная загрузка
В pacman 6.0 была добавлена функциональность параллельной загрузки пакетов. Чтобы включить эту возможность, необходимо присвоить опции ParallelDownloads в файле /etc/pacman.conf любое положительное значение (например, 5 ). В противном случае, если опция не задана, то пакеты будут загружаться последовательно.
Запрет на обновление отдельных пакетов
Чтобы пропустить пакет во время обновления системы добавьте его название в параметр IgnorePkg в разделе [options] :
Запрет на обновление группы пакетов
Аналогично запрету на обновление отдельного пакета, можно запретить обновление сразу для целой группы, например:
Запрет на обновление файлов
Запрет на установку файлов
Работа с несколькими файлами настроек
Если имеется несколько конфигурационных файлов (например, основная конфигурация и дополнительная с подключённым репозиторием testing), то работу с ними можно упростить, если вынести общие пункты настроек в отдельный файл и подключать его с помощью опции Include :
В частности, хуки pacman используются в связке с systemd-sysusers и systemd-tmpfiles для автоматического создания пользователей и файлов в процессе установки пакетов. Например, пакет tomcat8 требует наличия пользователя tomcat8 и определённых каталогов, ему принадлежащих. Хуки systemd-sysusers.hook и systemd-tmpfiles.hook вызывают команды systemd-sysusers и systemd-tmpfiles соответственно, когда pacman видит в пакете указания на пользователей и временные файлы.
Репозитории и зеркала
Помимо общего раздела [options] в файле pacman.conf также содержатся отдельные разделы для каждого из репозиториев. Репозиторий — набор пакетов, который физически находится на одном или нескольких серверах; эти сервера называются зеркалами репозитория.
Репозитории делятся на официальные и неофициальные. Порядок репозиториев в файле настроек имеет значение: если в разных репозиториях содержатся пакеты с одинаковым названием, то вне зависимости от их версий предпочтение отдаётся тому пакету, репозиторий которого ближе к началу файла. Чтобы подключённый репозиторий можно было использовать, сначала необходимо выполнить полное обновление системы.
Безопасность пакетов
Решение проблем
Failed to commit transaction (conflicting files)
Следующее сообщение об ошибке [1]:
означает, что при выполнении операции были обнаружены конфликтующие файлы. pacman не будет их перезаписывать автоматически. Это не ошибка, так сделано специально.
Если программа была установлена вручную без pacman — например, при помощи команды make install — необходимо удалить программу и все её файлы, а затем выполнить установку при помощи pacman. См. также pacman/Советы и приёмы#Поиск файлов без пакета-владельца.
Failed to commit transaction (invalid or corrupted package)
Failed to init transaction (unable to lock database)
Если работа pacman была прервана во время внесения изменений в базу, этот файл блокировки может остаться не удаленным. Если вы уверены, что на вашей машине не запущено других экземпляров pacman, удалите этот файл блокировки:
Не удаётся найти пакет для установки
pacman падает при обновлении
Если при удалении пакетов pacman завершает свою работу с ошибкой «database write» («запись в базу данных»), и после этого все попытки переустановки или обновления пакетов завершаются неудачей, сделайте следующее:
Переустановка pacman вручную
С помощью pacman-static
pacman-static AUR — статически скомпонованная версия pacman, которая может работать даже при отключении/повреждении системных библиотек. Это может помочь, если произошло частичное обновление и pacman больше не работает.
Прикреплённый комментарий в PKGBUILD содержит ссылку на закачку двоичного файла, с помощью которого можно переустановить pacman или обновить систему целиком в случае частичного обновления.
С помощью внешнего pacman
Извлечение вручную
Даже если pacman не подаёт признаков жизни, всё ещё можно починить его вручную, загрузив последние версии пакетов и распаковав файлы в нужные места. Последовательность действий:
Если у вас имеется доступ к другой работоспособной системе с Arch Linux, полный список зависимостей можно узнать командой
Возможно, вам необходимо обновить только несколько пакетов, в зависимости от серьёзности проблемы. Пример команды распаковки архива пакета:
Ошибка «Unable to find root device» после перезагрузки
Когда система запустится, выполните команду пересборки образа initramfs либо из консоли, либо из терминала (для стандартного ядра linux ):
Если этот способ не сработает, загрузитесь с Live-USB, смонтируйте корневой и загрузочный разделы, после чего сделайте chroot командой arch-chroot:
«_is_unknown_trust,_installation_failed»>Signature from «User » is unknown trust, installation failed
Требование импортировать ключи PGP
При установке Arch Linux со старого ISO-образа скорее всего вы получите сообщение о необходимости выполнить импорт PGP-ключей — подтвердите загрузку. Если добавить ключи всё же не получится, синхронизируйте связку ключей или обновите пакет archlinux-keyring (см. «_is_unknown_trust,_installation_failed»>выше).
Error: key «0123456789ABCDEF» could not be looked up remotely
Если пакеты подписаны свежими ключами, которые были добавлены к archlinux-keyring совсем недавно, это ключи могут оказаться недоступны в процессе обновления системы (проблема курицы и яйца). Установленный пакет archlinux-keyring должен обновиться, чтобы получить новые ключи. pacman попытается обойти эту проблему обращением к серверу ключей, но это может оказаться невыполнимо из-за работы прокси или межсетевого экрана и приведёт к ошибке. Обновите пакет archlinux-keyring как описано «_is_unknown_trust,_installation_failed»>выше.
«_is_invalid,_installation_failed»>Signature from «User » is invalid, installation failed
Такая ошибка может появиться, если системное время установлено неверно и подписи ключей кажутся устаревшими:
Warning: current locale is invalid; using default «C» locale
Как сказано в сообщении ошибки, локаль системы настроена неправильно (см. Locale).
pacman игнорирует настройки прокси
Как переустановить все пакеты, сохранив информацию о том, какие из них установлены явно, а какие — в качестве зависимостей?
Cannot open shared object file
Скорее всего, это означает, что при выполнении предыдущей операции pacman удалил или повредил разделяемые библиотеки, необходимые для него самого.
Чтобы выйти из этой ситуации, нужно вручную распаковать необходимые библиотеки в вашу файловую систему. Сперва определите, в каком пакете содержится требуемая библиотека, а затем найдите этот пакет в кэше pacman ( /var/cache/pacman/pkg/ ). Распакуйте разделяемую библиотеку в файловую систему. Это позволит вам запустить pacman.
Вот и все. Обновите оставшуюся часть системы.
Проблемы с загрузкой пакетов
Были сообщения о некоторых сетевых проблемах, которые приводят к невозможности обновления/синхронизации: [2], [3]. При обычной установке Arch Linux эти проблемы не появляются, так как стандартный загрузчик файлов при этом заменяется другим (см. pacman/Советы и приёмы#Производительность). При установке Arch Linux в VirtualBox эта проблема также появляется, когда вы используете опцию виртуальной машины Host interface вместо NAT.
Failed retrieving file ‘core.db’ from mirror
Если зеркала настроены правильно, но вы получаете такое сообщение об ошибке, попробуйте выбрать другой сервер имён.
‘local-package.pkg.tar’: permission denied
error: could not determine cachedir mount point /var/cache/pacman/pkg
Удаление программ Linux
Не всегда нам нужно только устанавливать программы. Иногда нужно очистить систему или удалить лишние пакеты и файлы чтобы освободить место на диске. Удаление программ в большинстве случаев выполняется очень просто вне зависимости от дистрибутива. Но иногда могут возникнуть сложности, например, с программами, которые сами создают множество файлов в файловой системе или программы, установленные вручную.
В этой статье мы рассмотрим как выполняется удаление программ Linux в разных дистрибутивах, какие программы можно использовать и какие команды нужны. Остановимся на том, как полностью удалить программу, чтобы она не оставляла следов в системе.
1. Удалить программу через GUI
В Ubuntu и многих других дистрибутивах необязательно использовать консоль для удаления программ, существуют центры приложений и графические интерфейсы. Здесь достаточно запустить утилиту, выбрать нужную программу или пакет и удалить ее. Например, во многих дистрибутивах применяется Gnome Software. Сначала запустите его из главного меню:
Затем найдите нужную программу, например, Gimp:
Откройте ее и нажмите кнопку «Удалить»:
Далее, подтвердите что ее нужно удалить и введите пароль суперпользователя:
После завершения работы, программа будет полностью удалена с вашего компьютера.
2. Удаление программ через пакетный менеджер
sudo apt remove firefox
Эта команда удалит пакет из системы, но некоторые конфигурационные файлы останутся и будут занимать место. Чтобы полностью удалить программу используйте опцию purge:
sudo apt purge firefox
Более подробно о том, как удалить программу в Linux в Ubuntu мы рассматривали в отдельной статье, в том числе и работу с PPA. Для удаления пакета в CentOS или Red Hat выполните:
sudo yum remove firefox
sudo dnf remove firefox
sudo zypper remove firefox
Удаление программ Linux с помощью пакетного менеджера позволяет полностью очистить систему от остатков программы. После завершения удаления рекомендуется перезагрузить компьютер, чтобы убедиться, что все файлы были удалены. Теперь вы знаете как удалить программу в Linux через терминал.
Пакетный менеджер раскладывал файлы программы по системе, а значит он знает что и где находится, значит сможет все правильно удалить. Но если вы компилировали программу и устанавливали ее установочным скриптом, то вы не сможете удалить ее с помощью пакетного менеджера, поскольку он ничего не знает о ней.
3. Удаление программ без пакетного менеджера
Здесь тоже есть несколько вариантов. Если вы устанавливали программу из исходников с помощью компиляции и make install, то она разложена по всей системе. А это значит, что вы не сможете просто зайти и удалить папку с ней, как в Windows. Вам придется использовать тот же скрипт, что вы использовали для установки. Откройте терминал и выполните:
cd /папка/с/исходниками
$ sudo make uninstall
Возможно, после удаления программы, вам стоит проверить папку /etc, так как там обязательно должны были остаться файлы настроек пути к библиотекам этой программы, исполняемым файлам и файлы сервисов. Также после удаления программ рекомендуется делать очистку системы Ubuntu.
Выводы
В этой статье мы рассмотрели как выполняется удаление программ Linux для различных дистрибутивов. Как видите, если правильно подходить к установке, то удалить программу очень просто. Сложности возникнут только если вы использовали нестандартные пути получения программ, что очень не рекомендуется.
pacman (Русский)/Tips and tricks (Русский)
Полезные советы, которые расширят возможности используемых утилит и самого pacman, можно найти в статьях Базовые утилиты и Bash.
Contents
Обслуживание
Список пакетов
С версией
При составлении отчётов об ошибках или обсуждении установленных пакетов может понадобиться составить список пакетов с версиями.
С размером
При необходимости освободить место на жёстком диске полезно будет узнать размер установленных пакетов. Можно определить как размер каждого пакета в отдельности, так и суммарный размер пакета и его зависимостей.
По отдельности
Список установленных пакетов с размером:
С зависимостями
Размеры пакетов вместе с зависимостями (два способа):
Размер загружаемых пакетов (если пакеты не указать, то будет выведен список всех пакетов в базе синхронизации):
Список пакетов, которым требуется обновление, с размером загрузки:
С датой
Список последних 20 установленных пакетов при помощи expac :
или в секундах с начала эпохи (1970-01-01 UTC):
Не в группе или репозитории
Список явно установленных пакетов не из мета-пакета base :
Список установленных пакетов, которые не входят в мета-пакет base или группу пакетов base-devel :
Список установленных пакетов, которые не явлются зависимостями других пакетов и не принадлежат мета-пакету base или группе пакетов base-devel :
То же, но с описаниями:
Список пакетов, установленных не из репозитория имя_репозитория :
Список пакетов, установленных из репозитория имя_репозитория :
Список пакетов Arch Linux ISO, которые не входят в мета-пакет base :
В разработке
Список установленных пакетов, которые считаются нестабильными и/или находятся в стадии активной разработки:
Просмотр пакетов
Следующая команда выведет информацию об установленных пакетах:
Утилита fzf выдаёт данные в терминал в виде двух панелей: названия пакетов слева, информация о них — справа.
Начните вводить буквы, чтобы искать пакет по названию; навигация по списку — стрелками или комбинациями клавиш Ctrl-j / Ctrl-k ; нажатие Enter выводит информацию о пакете в формате less.
Следующая команда fzf позволяет просматривать пакеты, о которых знает pacman (и установленные, и не установленные):
Клавиши для навигации те же, но Enter не работает.
Список файлов пакета с размером
Если какой-то пакет стал занимать слишком много места на диске и вы хотите понять, какие файлы в этом виноваты, выполните:
Поиск файлов без пакета-владельца
Если в вашей системе появились файлы, которые не принадлежат ни одному пакету (обычная ситуация, если вы не используете пакетный менеджер для установки программ), то стоит их найти и удалить.
Второй — составить список интересующих файлов и проверить их через pacman:
Отслеживание созданных пакетами файлов-сирот
Как правило, в нормально функционирующей системе со временем скапливаются файлы-призраки, вроде файлов состояний, логов, индексов и т.п.
Утилита pacreport из пакета pacutils отслеживает такие файлы в привязке к создавшим их пакетам с помощью настроек в файле /etc/pacreport.conf (см. pacreport(1) § FILES ).
Пример настроек (сокращённо):
Кроме того, утилита aconfmgr ( aconfmgr-git AUR ) может отслеживать изменённые файлы и файлы без пакета-владельца с помощью скрипта настройки.
Удаление неиспользуемых пакетов
Команда для рекурсивного удаления пакетов-сирот и их файлов настроек:
Удаление всех пакетов, кроме базовых
Если возникла необходимость очистить систему, оставив только базовый набор пакетов, то проще всего изменить причину установки ненужных пакетов на «зависимость», после чего удалить неиспользуемые зависимости.
Сначала измените причину установки всех явно установленных пакетов на «зависимость»:
Затем измените причину установки пакетов, которые вы удалять не хотите, на «установлен явно»:
Наконец, удалите ненужные пакеты-зависимости, как описано в разделе #Удаление неиспользуемых пакетов.
Список зависимостей нескольких пакетов
Ниже приведена команда для вывода списка зависимостей нескольких пакетов, отсортированого в алфавитном порядке с удалением дубликатов.
То же самое, с помощью expac :
Список изменённых файлов для резервного копирования
Команда должна выполняться с правами root, чтобы в список вошли файлы, владельцем которых является суперпользователь (вроде файла /etc/sudoers ).
Резервная копия базы данных pacman
Следующая команда создаст резервную копию локальной базы данных pacman:
Сохраните резервную копию на одном или нескольких внешних устройствах, вроде USB-накопителя, внешнего жесткого диска или CD-R.
Чтобы восстановить базу данных, поместите файл pacman_database.tar.bz2 в каталог / и выполните:
Просмотр списка изменений пакета
При внесении изменений в состав пакета сопроводители часто подробно комментируют произведённые правки. Утилита pacolog AUR позволяет просматривать эти комментарии из командной строки. Команда pacolog пакет выведет последние сообщения о правках для пакетов из официальных репозиториев и AUR.
Установка и восстановление
Альтернативные способы получения и восстановления пакетов.
Установка пакетов с CD/DVD или USB-накопителя
Загрузите пакеты или группы пакетов:
Затем запишите каталог Packages на CD/DVD, USB-накопитель, внешний жёсткий диск и т.д.
1. Примонтируйте носитель:
3. В заключение, синхронизируйте базу данных pacman, чтобы получить доступ к новому репозиторию:
Собственный локальный репозиторий
Следующая команда добавляет новый пакет к базе данных или заменяет старую версию существующего пакета на более новую:
Для работы repo-add база данных и пакеты могут храниться в разных каталогах, но когда вы станете работать с базой через pacman, её нужно объединить с пакетами в одном месте. Хранение всех пакетов репозитория в одном каталоге также позволяет использовать подстановочные символы в командной оболочке, чтобы добавлять или обновлять несколько пакетов за раз:
Если вы собираетесь поддерживать несколько версий пакета для разных архитектур, то следует соблюдать некоторые предосторожности. Под каждую архитектуру должен быть выделен отдельный каталог:
При запуске repo-add проверяет, подходят ли пакеты для добавления в базу. Если нет, то появится сообщение об ошибке:
Утилита repo-remove удаляет пакеты из базы данных:
При желании добавьте свой репозиторий в список неофициальных репозиториев, чтобы сообщество могло извлечь из него пользу.
Сетевой кэш pacman с совместным доступом
Если в вашей локальной сети есть несколько машин с Arch Linux, сетевой кэш позволит значительно уменьшить время загрузки новых пакетов. При этом важно помнить, что в кэше не должно быть пакетов для разных архитектур (например, i686 и x86_64), иначе возникнут проблемы.
Кэш только на чтение
Если вы уже запустили веб-сервер для каких-то других целей, его можно использовать как сервер локального репозитория вместо darkhttpd. Например, для сервера nginx добавьте в настройки блок правил server с указанием прослушивать порт 8080:
Не забудьте после этого перезапустить nginx.
Overlay-монтирование кэша только на чтение
Распределённый кэш только на чтение
Также раньше использовались утилиты PkgD и multipkg, но их разработка была прекращена.
Кэш на чтение и запись
Чтобы несколько машин могли работать с общим кэшем пакетов, откройте совместный доступ к каталогу /var/cache/pacman/ с помощью любого сетевого протокола монтирования файловых систем. В этом разделе описано, как использовать shfs и SSHFS для организации совместного доступа к кэшу пакетов и некоторым каталогам с библиотеками в локальной сети. Имейте в виду, что сетевой кэш может быть довольно медленным, в том числе и из-за выбранной файловой системы.
Теперь, чтобы открыть совместный доступ к пакетам, смонтируйте каталог сервера /var/cache/pacman/pkg в каталог /var/cache/pacman/pkg на клиентских машинах.
Двухсторонний кэш на основе rsync
Другой подход к созданию сетевого кэша — использовать rsync. Настройте сервер кэша, запустите на нём демон rsync и выполните двухсторонную синхронизацию между сервером и клиентскими машинами по протоколу rsync. В этом случае имена файлов с двоеточиями проблемы не создадут.
Динамический обратный прокси-кэш на основе nginx
Сервер nginx может работать в качестве посредника для запросов пакетов на официальные upstream-зеркала, кэшируя ответы на локальном диске. Все последующие запросы к этим пакетам будут адресоваться к локальному кэшу, минимизируя интернет-трафик при обновлении большого количества компьютеров.
Установите nginx на машине, предназначенной для хранения кэша. Создайте каталог кэша с необходимыми разрешениями, чтобы nginx мог записывать в него файлы:
Чтобы использовать кэш на каждом компьютере с Arch Linux (включая тот, который хранит кэш), нужно добавить следующую строку в начало файла mirrorlist :
Кэширующий прокси-сервер Pacoloco
Кэширующий прокси-сервер Flexo
Синхронизация кэша пакетов специальными программами
Утилиты Syncthing и Resilio Sync можно использовать для синхронизации каталогов кэша pacman (например, /var/cache/pacman/pkg ).
Предотвращение нежелательной очистки кэша пакетов
Воссоздание пакета из файловой системы
С помощью пакета fakepkg AUR можно воссоздать пакет из файловой системы. Файлы будут собраться в том виде, в каком они есть, следовательно, сделанные в них изменения войдут в «собранный» пакет. Поэтой причине распространять пакет среди других пользователей не рекомендуется; для этого гораздо лучше подойдёт система сборки Arch или архив Arch Linux.
Список установленных пакетов
Создание списка явно установленных пакетов может оказаться полезным, если вы собираетесь сделать резервную копию системы или ускорить процесс установки на новой машине:
Хук pacman позволит автоматизировать обновление списка пакетов. Пример:
Установка пакетов по списку
Следующая команда установит пакеты в соответствии с ранее созданным списком, при этом уже установленные пакеты переустанавливаться не будут:
В списке могут оказаться внешние пакеты, из AUR или установленные локально. Чтобы их исключить, вместо предыдущей команды выполните следующую:
Наконец, убедитесь, что установленные в системе пакеты совпадают со списком, и удалите всё, что в него не входит:
Список изменённых файлов пакетов
Если вы предполагаете, что какие-то файлы были повреждены (например, из-за ошибки программы или аппаратного обеспечения), стоит проверить их хэш-суммы. Сделать это можно с помощью пакета pacutils :
Переустановка всех пакетов
Чтобы переустановить все пакеты, установленные из базы синхронизации, выполните:
По умолчанию при переустановке пакета pacman оставляет причину установки без изменений.
Восстановление локальной базы данных
Восстановление USB-носителя из существующей установки
Если вы установили Arch на USB-носитель и испортили его (например, выдернув носитель в процессе записи), стоит попробовать переустановить все пакеты. Возможно, это восстановит работоспособность флешки. Предположим, USB-носитель смонтирован в каталог /newarch :
Например, вы хотите увидеть содержимое файла /etc/systemd/logind.conf в пакете systemd :
Для просмотра файлов архива можно использовать vim :
Список приложений, использующих устаревшие библиотеки
Даже после установки новой версии пакета некоторые долгоиграющие программы (например, демоны и серверы) могут всё ещё использовать код из библиотек старого пакета. Если такая библиотека содержит уязвимость или опасный баг, продолжать её использовать — не самая лучшая идея.
Следующая команда найдёт все программы, которые используют устаревший код:
Будут выведены названия работающих программ, а также старые библиотеки, которые были удалены или замещены более новыми.
Установка контента только на нужном языке
В примере ниже устанавлены будут только английские (US) файлы, или никакие вообще:
Производительность
Увеличение скорости загрузки
Скорость загрузки пакетов можно повысить, если использовать сторонние приложения для загрузки вместо встроенного в pacman менеджера закачек, или настроив параллельную загрузку.
В любом случае, прежде чем делать какие-либо изменения, убедитесь, что используете последнюю версию pacman:
Powerpill
Powerpill — обёртка для pacman, которая использует параллельную и сегментированную загрузку для повышения скорости.
Эта утилита будет очень полезна, если вам нужны более сложные настройки прокси, чем это позволяют возможности pacman.
aria2
aria2 — небольшая загрузочная утилита с поддержкой возобновляемой и сегментной загрузки по протоколам HTTP/HTTPS и FTP. aria2 создаёт несколько одновременных соединений с зеркалом Arch, что увеличивает скорость загрузки файлов и пакетов.
Другие приложения
Есть и другие загрузочные приложения, с которыми может работать pacman. Ниже приводится список в виде соответствующих настроек XferCommand :