Pacman linux как установить

Обновлено: 06.07.2024

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

Pacman может держать систему в новейшем состоянии, синхронизируя пакеты с главным сервером, тем самым позволяя сознательному администратору поддерживать систему. Клиент-серверная модель позволяет скачивать/устанавливать пакеты одной командой со всеми требуемыми зависимостями (похоже на apt-get от Debian).

Pacman был написан на языке C и поэтому он быстрый, легкий. Он использует .tar.gz формат пакетов, эти пакеты извлекаются быстрее.

Использование

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

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

Перед установкой и обновлением пакетов полезно синхронизировать базу данных локально установленных пакетов с удалёнными репозиториями


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

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

Вы можете совмещать параметры, например, эта команда синхронизирует базы данных и установит пакет:

Удалить пакет (оставляя все зависимости в системе):

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

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

Конечно, это может быть дополнено -s, чтобы также удалить ненужные теперь зависимости. Таким образом, команда полностью удалит пакет, его конфигурации и все зависимости, которые больше не нужны:

Обновление системы

Pacman может обновить все пакеты системы одной командой. Количество пакетов зависит от того, насколько ваша система современна.

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

Хорошо выполнять эту команду каждые несколько дней.

Получение списка установленных пакетов для быстрого восстановления системы

Если ваша система упала и ее сложно восстановить то неплохо бы иметь список пакетов которые были установлены в ней.

Сохранить в файл pkglist список пакетов установленных в системе:

Сохраните этот файл на флешке или еще где-нибудь.

Если вдруг с вашей системой случится что-либо неприятное то установленые пакеты легко можно восстановить:

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

  • Поиск пакетов в репозиториях, вы можете указать только часть названия:
  • Поиск среди установленных пакетов:
  • Вывод информации о пакете:
  • Вывод списка файлов пакета:
  • Какой пакет является владельцем файла?
  • Перечислите все пакеты, больше не требуемые как зависимости(сироты):
  • Удалить всех сирот: (Проверьте сначала вывод команды pacman -Qdt.)

Одновременный поиск в репозитории и среди установленных пакетов

Вы можете использовать следующий bash скрипт в качестве эквивалента для одновременного вызова pacman -Ss foo и pacman -Qs foo, для того чтобы узнать, какие из пакетов в выводе установлены на вашей системе. Последние будут помечены звёздочкой.

Сохраните этот скрипт в каталоге, включенном в переменную PATH (например,

/bin/), и назовите его pacsearch. Сделайте его исполняемым с помощью

Теперь если вы напишете, например:

вывод может выглядеть так:

В этом случае вы узнаете, что ни один из вышеперечисленных пакетов (кроме самого qt) на вашей системе не установлен.

NB1: был добавлен запрос на flyspray с предложением интегрировать вышеуказанную функциональность в сам pacman, чтобы 'грязные' хитрости bash стали стать ненужными с последующими версиями pacman.

NB2: вы можете изменить этот bash скрипт с помощью этого wiki, для того чтобы установленные пакеты были выделены различными цветами в выводе.

Другое использование

Вы можете ввести ссылку:

  • Очистка кэша pacman`а (/var/cache/pacman/pkg):
  • Для того, чтобы переустановить все пакеты в вашей системе (которые доступны в репозитории):

Для более детальной информацией о возможных ключах обратитесь к pacman --help или man pacman.

Настройка

Настройки pacman`a находятся в /etc/pacman.conf . Важными секциями являются:

Основные опции

Основные опции находятся в секции [options]. Есть одна полезная опция IgnorePkg. Например, если вы изменяли или накладывали патч на пакет, добавление его в IgnorePkg укажет pacman'у не обновлять его при выходе следующей версии пакета. Но pacman всё же предупредит вас о том, что доступна более свежая версия, так что в итоге вы можете обновить ваш изменённый пакет. Опция также полезна для БОЛЬШИХ пакетов (например, openoffice-base), если вы хотите избежать скачивания и обновления всего пакета каждый раз, когда в репозитории появляется маленькое изменение. Поскольку pacman всё равно предупредит вас о последней версии, вы можете обновить пакет вручную.

Репозитории

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


Его основные профи вращаются вокруг большого сообщества и тысячи пакетов, которые можно установить на Arch Linux, как из официальных репозиториев, так и из AUR.

В этом руководстве мы расскажем, как устанавливать пакеты в Arch Linux. Некоторые из методов установки, которые мы рассмотрим, включают:

AUR содержит описания пакетов PKGBUILD, которые позволяют вам скомпилировать пакет из исходного кода с помощью makepkg.

Для установки пакета в Arch Linux из AUR вам понадобится вспомогательный инструмент, который автоматизирует процесс сборки и установки пакета. В этом руководстве мы рассмотрим:

  • Использование Yaourt
  • Использование packer
  • Использование aurman

1) Установка пакетов на Arch Linux с использованием Pacman

Arch Linux поставляется с программным менеджером по умолчанию, который называется Pacman, который использует tar для упаковки приложений. Pacman работает без сбоев с Arch Build System.

Чтобы установить пакет с pacman, используйте параметр -S.

В приведенном ниже примере будут устанавливаться пакеты vlc и elinks на Arch с помощью pacman:

Получить информацию об установленном пакете с помощью -Qi:

Чтобы удалить пакет, используйте параметр -R

2) Установка пакетов на Arch Linux с использованием yaourt

Пакет можно установить с помощью pacman, в отличие от других обложек pacman, которые в основном представляют собой пакеты как сборки AUR. yaourt зависит от diffutils, pacman> = 5.0, package-query> = 1.8 и gettext.

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

Добавить содержимое ниже:

Опция -y используется для синхронизации списка содержимого пакета.

Чтобы установить пакет с использованием AUR:

Затем вы можете искать пакеты на AUR:


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

Введите номер пакета в списке и нажмите клавишу <Enter>.

3) Установка пакетов на Arch Linux с использованием packer

Чтобы установить упаковщик на Arch Linux, вы можете использовать другой помощник AUR, например yaourt, или самостоятельно создать пакет.

Если у вас уже установлен yaourt, установите пакет из него, запустив:

«-noconfirm» используется для отсутствие запросов.

Yaourt можно получить в официальном репорте Arch. Он может быть установлен с помощью pacman:

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

Одним из преимуществ пакера над AUR является то, что ему не нужны привилегии sudo.

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

Arch Linux является непрерывно обновляемым дистрибутивом и не имеет фиксированной версии: Rolling_release.

Arch Rollback Machine ("заморозка репозитория")

Имеется возможность «заморозить» состояние репозитария Arch Linux на определенную дату (см. Arch_Rollback_Machine), т.е. зафиксировать состояние репозитария на момент сборки базовых модулей

Это очень удобно для FRUGAL установки : обновления не накапливаются в сохраненке

Шпаргалка по ключам

-S синхронизация (--sync)

pacman -S pkg1 pkg2 устанавливает или обновляет пакеты вместе с их зависимостями

pacman -S repo/pkg устанавливает пакет из указанного репозитория (когда пакет имеет несколько версий в разных репозиториях, например, extra и testing)

pacman -S «pkg>=version» устанавливает пакет требуемой версии

pacman -Sw pkg скачивает пакет, но не устанавливает его

pacman -Sp pkg устанавливает пакет и выводит для него ссылку на скачивание вместе с зависимостями

pacman -Sf pkg устанавливает пакет, пропуская проверку конфликтов

pacman -Sd pkg устанавливает пакет, пропуская проверку зависимостей

pacman -Syu обновляет все пакеты системы (предварительно синхронизировав базы данных репозиториев)

pacman -Su обновляет все устаревшие пакеты (предпочтительнее предыдущая команда)

pacman -Suu обновляет пакеты с возможностью даунгрейда (если были, например, отключены репозитории testing и требуется откатиться на более старые версии)

pacman -Ss name ищет пакеты в базе данных по имени и описанию

pacman -Ssq pkg выводит в результатах поиска только имена пакетов

pacman -Sg group показывает пакеты, входящие в указанную группу

pacman -Sl repo показывает все пакеты из репозитория

pacman -Sc удаляет из кэша пакеты, которые уже были удалены (кэш хранится в /var/cache/pacman/pkg/)

-R Удаление (--remove)

pacman -R pkg удаляет пакет, оставляя зависимости в системе

pacman -Rs pkg удаляет пакет вместе с зависимостями, если они не используются другими пакетами

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

-Q запрос (--query)

pacman -Q - установленные пакеты с версией (-Qq - без версии)

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

pacman -Ql pkg показывает список файлов установленного пакета

pacman -Qc pkg показывает список изменений пакета (если пакет его имеет)

pacman -Qo /path/to/file показывает какой пакет является владельцем указанного файла

pacman -Qet отображение списка явно установленных, но не требующихся другим пакетам, пакетов

pacman -Qdt перечисляет все пакеты, больше не требуемые как зависимости

pacman -Qk pkg проверяет, все ли файлы, принадлежащие данному пакету присутствуют в системе

pacman -U path/to/pkg.tar.gz устанавливает локальный пакет (или из интернета, если как путь будет прописана интернет-ссылка)

pacman -T pkg выводит список зависимостей, которые не удовлетворены в системе для указанного пакета

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

Для принудительного обновления списка пакетов : pacman -Syy

Поиск

Найти все зависимости локального пакета: pacman -U –print-format »%n %v»

Все пакеты репозитория : pacman -Sl имя_репозитория. -Slq - без версий

Показать все пакеты, не используемые ни одним пакетом: pacman -Qt

Установка, удаление

Устанавливать пакет с заменой файлов системы: pacman –force -S имя_пакета . В свежих версиях : pacman -S имя_пакета –overwrite «*»

Устанавливать пакет из указанного репозитория: pacman -S репозиторий/имя_пакета

Установить локальный пакет : pacman -U путь/имя_пакета

Удалить пакет со всеми зависимостями : pacman -Rs имя_пакета

Переустановить все пакеты из arch репозитория: pacman -S $(pacman -Qq | grep -v «$(pacman -Qmq)»)

Для получения списка файлов неустановленного пакета можно использовать утилиту pkgfile из состава пакета pkgtools или найти пакет по имени файла : pacman -F file

Справочная информация

pacman -h показывает синтаксис команды (если добавить опцию, то синтаксис для заданной опции, например pacman -Qh)

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

Для установки списка пакетов при помощи поиска по регулярному выражению (смотрите раздел Операции и синтаксис 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), включены в вывод.

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