Trizen — еще один легкий менеджер пакетов для archlinux

pacman: пакетный менеджер для arch linux

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

, но существует удобная надстройки над ним — yaourt, которая кроме функций самого pacman обладает некоторыми другими: предоставление прямого доступа к AUR (пользовательский репозитарий Arch), позволяющей собирать и устанавливать пакеты автоматически.

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

Пост представляет собой мини-справочник по опциям pacman/yaourt, по аналогии с справочниками для других пакетных менеджеров apt/dpkg и rpm/yum.

Подготовка к установке yaourt (выполнять от root)

pacman -S base-devel fakeroot sudo

Добавим в pacman.conf репозитарий с yaourt

# vim /etc/pacman.conf [archlinuxfr]
Server = http://repo.archlinux.fr/$arch

Установка

pacman -Syu yaourt

Команда pacmanКоманда yaourtОписание
pacman -S package_name/group_name yaourt -S package_name установка/переустановка пакета/группы с именем package_name/group_name; опция —ignore packagename — игнорирование пакета при установке/обновлении; опция -p выводит список действий команды, без выполнения самого действия
pacman -Sg group_name yaourt -Sg group_name список пакетов в группе group_name
pacman -Sl repository yaourt -Sl repository список всех пакетов в указанном репозитарии
pacman -Sw packagename yaourt -Sw packagename скачивание пакета packagename, без установки
pacman -U /path/to/package.pkg.tar.xz yaourt -U /path/to/package.pkg.tar.xz установка пакета package.pkg.tar.xz из файла
pacman -R package_name yaourt -R package_name удаление пакета package_name без удаления зависимостей, опция -s для удаления зависимостей, не использующимися другими пакетами
pacman -Syu yaourt -Syua обновление системы, набор опций для pacman обновляет пакеты из базовых репозитариев, для yaourt — также обновляет из AUR
pacman -Qu yaourt -Qu список пакетов, для которых доступны обновления
pacman -Q packagename yaourt -Q packagename поиск пакета packagename в локальной базе пакетов
pacman -Ss package_name/package_desc yaourt package_name/package_desc поиск в базовых репозитариях пакета (в AUR для yaourt) с именем package_name или описанием package_desc
pacman -Si package_name yaourt -Si package_name информация о пакете package_name (извлекается из базовых репозитариев)
pacman -Qi package_name yaourt -Qi package_name информация о локально установленном пакете package_name
pacman -Ql package_name yaourt -Ql package_name список файлов, установленных пакетом package_name
pacman -Qo /path/file yaourt -Qo /path/file получение имени пакета, которому принадлежит файл path/file
yaourt -S —depends packagename список пакетов, которые зависят от packagename
pacman -Sc yaourt -Sc удалить из кэша /var/cache/pacman/pkg неустановленные пакеты и закэшированные базы с пакетами
yaourt -G package_name получить *PKGBUILD* для пакета package_name
yaourt —stats статистика по установленным пакетам

Получить отсортированый список (по размеру) установленных пакетов можно с помощью команды pacgraph.

# sudo pacman -S pacgraph
pacgraph -c

Установка большого пакета

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

sudo mount -o remount,size=6G,noatime /tmp

Проверяем новый размме tmpfs

findmnt —target /

Источник: https://proft.me/2012/03/24/pacman-paketnyj-menedzher-dlya-arch-linux/

Записки программиста

Сегодня мы поговорим об основах управления пакетами в Arch Linux. В общем и целом, идея напоминает ports и packages из мира FreeBSD. То есть, можно как компилировать софт из исходников, так и ставить бинарные пакеты. Но есть ряд существенных отличий. Итак, давайте же во всем разберемся!<\p>

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

Pacman (название означает package manager) — это местная утилита для управления бинарными пакетами, аналог apt-get из мира Debian / Ubuntu или yum из мира RHEL / CentOS / Fedora. Пользоваться им очень просто.

Получение общей справки или справки по конкретным командам:

pacman —help
pacman -S —help

Флаги с буквами в верхнем регистре означают команды. Из них основные — это -S (sync), -Q (query) и -R (remove). Все они имеют дополнительные флаги, которые пишутся в нижнем регистре. Например, s означает search.

Зная типичные дополнительные флаги, получаем сравнительно простую и понятную схему. Например, -Ss означает поиск по всем пакетам, а -Qs означает поиск только по установленным пакетам.

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

Установить пакеты:

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

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

pacman -S —needed base-devel

Список пакетов, входящих в группу:

Список всех доступных групп:

# группы и пакеты в них
pacman -Sgg
# только имена групп
pacman -Sgg | cut -d ' ' -f 1 | uniq

Обновить базу данных пакетов:

Обновить установленные пакеты:

Список пакетов, для которых есть обновления:

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

pacman -Qi
pacman -Qi | grep Name

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

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

Определить, к какому пакету относится заданный файл:

Удалить пакет:

pacman -R xorg-xbacklight

Удаление пакетов, установленных, как зависимости, и ставших ненужными (autoremove):

Некоторые пакетные менеджеры умеют «замораживать» пакеты, то есть, не обновлять их при наличии обновлений (hold в Debian и деривативах, lock во FreeBSD). Для достижения того же эффекта в Arch Linux в файле /etc/pacman.conf в секцию [options] нужно дописать что-то вроде:

Заканчивая рассказ про pacman, хочется отметить, что список серверов с пакетами находится в /etc/pacman.d/mirrorlist, а кэш загруженных пакетов следует искать в /var/cache/pacman/pkg/. Для очистки кэша используйте команду:

Логи пишутся в /var/log/pacman.log. В них вы всегда найдете, что, на что, и когда было обновлено.

Пример использования AUR

AUR (аббревиатура от Arch User Repository) — это каталог пакетов для Arch Linux, поддерживаемых пользователями (типа как PPA в мире Ubuntu). На сайте aur.archlinux.org есть поиск, комментарии к пакетам, и многое другое.

Для примера рассмотрим установку пакета ttf-ms-fonts, который содержит шрифты от Microsoft, и по более-менее понятным причинам доступен только в AUR:

# пакеты из группы base-devel — это типичные пакеты,
# необходимые для сборки других пакетов
pacman -S —needed base-devel
# адрес репозитория есть на странице пакета
git clone https://aur.archlinux.org/ttf-ms-fonts.git
cd ttf-ms-fonts

Перекрестная ссылка: Моя шпаргалка по работе с Git.

В репозитории вы найдете файл PKGBUILD (используется синтаксис bash), и плюс к нему, возможно, какие-то патчи и подобные вещи.

Файл PKGBUILD содержит информацию о том, откуда качать исходники пакета и какие контрольные суммы у этих исходников, с какими флагами их собирать, и так далее. Таким образом, немного подправив PKGBUILD, можно собрать пакет со своими флагами.

Хорошей практикой считается держать репозитории AUR-пакетов где-нибудь в ~/packages, время от времени делая им git pull и обновляясь на новую версию.

Будучи в репозитории говорим:

Здесь ключ -s означает необходимость установить недостающие зависимости с помощью pacman. Настройки makepkg хранятся в файле /etc/makepkg.conf. Это местный аналог /etc/make.conf из мира FreeBSD. В нем можно указать CFLAGS, CXXFLAGS и подобные вещи. Очень рекомендуется указать в параметре PACKAGER свое имя и email. Это позволит отличать пакеты, собранные вами, от всех остальных.

Наконец, ставим собранный пакет:

pacman -U ttf-ms-fonts-2.0-10-any.pkg.tar.xz

Кстати, с помощью pacman -U также можно откатываться к более ранним версиям пакетов. Где искать кэш со скаченными пакетами, вы уже знаете. Если же пакета нет в кэше, его всегда можно найти на archive.archlinux.org.

Дополнение: На случай, если пакет из AUR зависит от других пакетов из AUR, предусмотрено ряд утилит, благодаря которым не придется ставить все эти пакеты вручную, как описано выше. Методом тыка я решил попробовать yaourt и оказался им вполне доволен. Утилита работает в точности, как pacman, только дополнительно позволяет устанавливать пакеты из AUR.

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

Edit PKGBUILD ? [Y/n] («A» to abort)

Исправить такое поведение можно, прописав в ~/.bashrc:

alias yaourt='yaourt —noconfirm'

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

Собираем пакеты из исходников с помощью ABS

Под аббревиатурой ABS (Arch Build System) понимается сразу несколько довольно разных вещей. Это (1) сам механизм сборки пакетов в Arch Linux, с файлами PKGBUILD, утилитой makepkg и прочим, как было описано выше.

ABS называется и (2) аналог дерева портов из мира FreeBSD, использующий (1), и о котором пойдет речь в этом параграфе. Также (3) ABS может означать утилиту abs, предназначенную для работы с (2). Наконец, (4) поскольку официальные пакеты собираются из ABS в смысле (2), аббревиатуру ABS часто используют в смысле «противоположность AUR».

Несмотря на всю эту неразбериху, значение «ABS» обычно легко понять по контексту.

Итак, для работы с ABS в смысле (2) первым делом ставим утилиту abs:

С помощью этой утилиты скачиваем ABS:

Все исходники сваливаются в /var/abs. У меня они заняли около 82 Мб. Далее работа с ABS осуществляется точно так же, как с AUR. Интересно, что makepkg не позволяет запускать себя из под рута, в связи с чем приходится копировать исходники пакетов из /var/abs к себе в ~/packages, и держать их там вместе с AUR.

Это разумно сразу по нескольким причинам. Во-первых, вы всегда точно знаете, какие пакеты вы собираете из исходников, а какие — нет. Во-вторых, сборка пакетов из ABS часто означает их сборку со своими параметрами, то есть, с изменением PKGBUILD.

Чтобы эти изменения не терялись при обновлении ABS, вы можете держать у себя в ~/packages не только измененный PKGBUILD, но и патч к нему.

В файле /etc/abs.conf можно указать, что утилита abs должна тянуть, а что нет. Например, можно не тянуть каталог core и дополнительно тянуть testing.

Обновление ABS производится так:

# обновить все дерево
sudo abs
# обновить конкретный пакет
sudo abs extra/mutt

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

… а в /etc/pacman.conf:

Помимо прочего, при помощи ABS можно собрать кастомное ядро Linux. Сорцы соответствующего пакета вы найдете в /var/abs/core/linux.

Заключение

Увы, невозможно рассказать все в рамках одного поста. Например, мы не рассмотрели создание собственных пакетов и их заливку на AUR или такую интересную возможность pacman, как хуки. Надеюсь, что мне удалось дать вам 10% информации, которая помогает решить 90% всех проблем. Остальные 90% информации ищите в официальной вики и манах. Повторюсь, у Arch Linux они действительно классные.

Буду рад вашим вопросам и дополнениям. Можно подумать, я когда-то не был им рад 🙂

Источник: https://eax.me/archlinux-packages/

Pacman: управление пакетами в Archlinux

Автор: Алексей Федорчук
5 июля 2005 г

В этой заметке я постараюсь продемонстрировать тот самый цимес, который придаёт неповторимое своеобразие Archlinux — систему управления пакетами под именем pacman.

Краткое вступление

Подобно системе apt, зародившейся в недрах Debian и внедрённой затем… да куда только её не внедрили, — применение системы pacman далеко выходит за рамки родительского дистрибутива: pacman успешно прикручивается к Slackware — пример чему показал сначала Rubix, а затем Frugalware Linux.

На Distrowatch я нашел даже сведения о том, что этот механизм управления пакетами используется в Ufficio Zero — итальянском дистриубутиве, основанном на Ubuntu, и использующем, следовательно, пакеты в deb-формате.

Правда, проверить это мне пока не удалось — сайт их оказался на чистейшем языке Данте и Петрарки, на котором я только ругаться могу, а устанавливать его было влом. Может быть, кто из наших романистов может внести ясность?

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

Pacman — базис пакетного менеджмента

Archlinux — не является в полном смысле слова дистрибутивом Source Based, подобно Gentoo или, тем более, Linux from Scratch. Ибо основная форма его дистрибуции — все же в виде набора прекомпилированных пакетов. Видом эти пакеты похожи на обычные архивы *tar.gz:

package##ver##rel.pkg.tar.gz

Здесь package — имя пакета, ##ver — номер его версии, присвоенный его разработчиком, ##rel — номер реализации, то есть сборки конкретного бинарника, даваемый уже майнтайнерами Archlinux, аббревиатура pkg свидетельствует, что мы имеем дело с прекомпилированным пакетом Archlinux, а не c абстрактным тарбаллом, ну а два последние суффикса понятны без комментариев…

При ближайшем рассмотрении оказывается, что пакеты Archlinux похожи на тарбаллы не только видом, но и нравом.

Формат их — прост до предела, это именно чистое за-tar‘енное дерево, сжатое gzip‘ом, не содержащее никаких инсталляционных скриптов, и вообще никакой метаинформации: только сам исполняемый бинарник (бинарники), предназначенный для помещения в каталог /usr/bin (за исключением тех программ, которым резонно находиться в /bin, /sbin или /usr/sbin), сопровождаемый в необходимых случаях конфигами (для каталога /usr/etc) и библиотеками (для /usr/lib), а также man-документацией.

Средство для управления этими просто построенными пакетами также очень просто и носит название pacman (от packages manager, нужно полагать). Формат её вызова таков:

Читайте также:  Что такое appimage?

$ pacman [опции] имя_файла_пакета

Указание действия является обязательным, опций, в соответствие с названием — опциональным.

Действия, предусмотренные командой pacman, следующие:

  • -A, или —add — добавление (то есть установка) пакета в систему;
  • -U, —upgrade, и -F, —freshen, — обновление пакета; различие между ними в том, что во втором случае обновляется только ранее инсталлированный (посредством -A) пакет, в первом же — установка осуществляется и при отсутствии оного;
  • -S, —sync, — синхронизация локально установленных пакетов с репозиторием дистрибутива (ftp.archlinux.org) или его зеркалами;
  • -R, —remove, — удаление пакета, выполняемое без всяких предупреждений, вместе со всеми его конфигурационными файлами и прочим хозяйством (за исключением, разумеется, пользовательских конфигов из каталога $HOME);
  • -Q, —query, — запрос информации о пакете, установленном или не установленном;
  • -V, —version, — вывод номера версии pacman, сведений о копирайте и лицензии.

В качестве аргументов команды pacman при действиях -A, -U и -F должны выступать полные имена файлов пакетов, вида — pkg_name-version-release.pkg.tar.gz.

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

В одной строке можно перечислить несколько пакетов для единовременной установки или обновления. Действия -Q, -S и -R требуют только указания имени пакета, без прочей атрибутики.

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

$ pacman -hA

даст список всех опций, которые доступны при действии —added:

usage: pacman {-A —add} [options]

Опции команды pacman довольно многочисленны, что компенсируется их обычной необязательностью.

Важными могут быть -d, —nodeps, отменяющая проверку зависимостей, и -f, —force, — принудительная установка пакета, а также -r, —root, предписывающая отличный от умолчального исходный каталог (а им является корень файловой системы) и требующий, естественно, указания пути (например, /usr/local или /opt.

Отмечу ещё опцию -c, —cascade, так как применение её требует особой осторожности: она предписывает рекурсивное удаление не только указанного пакета, но и всех, связанных с ним зависимостями. Обратим внимание, что опции, в отличие от действий, в краткой форме даются исключительно в нижнем регистре.

Наконец, самая интересная опция — -u, —sysupgrade. Используемая вместе в действиями -U или, ещё лучше, -S, она обеспечивает тотальное обновление всей системы:

$ pacman -Su

Очевидно, что в этом случае требуется подключение к Сети для синхронизации с репозиториями Archlinux.

Для ознакомления с прочими опциями предлагается обратиться к тёте Мане — man pacman.

Настройка pacman

Выше я вскользь обмолвился, что для упрощения установки пакетов их следует разместить в должном месте. А место это определяется в файле конфигурации pacman — /etc/pacman.conf.

Как и все а Archlinux, файл этот устроен очень просто и состоит из двух секций — общих настроек установки пакетов и списка репозиториев оных. К общим настройкам относятся:

IgnorePkg = pkg1 pkg2 …

которой определяется список пакетов, не затрагиваемых при тотальном обновлении посредством pacman -Su;

NoUpgrade = etc/passwd etc/group etc/shadow…

содержащая список файлов, которые не должны перезаписываться ни при каких установках и обновлениях пакетов (в том числе и при тотальном апдейте); по умолчанию здесь, кроме указанных, перечислены все основные общесистемные конфиги типа etc/fstab, etc/rc.conf, etc/rc.local, и т.д.;

DBPath = /path/to/db/dir

путь к базе данных пакетов (по умолчанию — /var/lib/pacman);

NoPassiveFtp

отключение пассивного режима ftp-соединения (по умолчанию используется именно он — и это, товарищи, правильно в большинстве случае).

В списке репозиториев Arch’а указан главный ftp-сервер проекта

Server = ftp://ftp.archlinux.org/current

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

Server = local:///home/arch/pkg

Именно нахождение пакета в одном из репозиториев, перечисленных в файле /etc/pacman.conf, избавляет от необходимости указывать полный путь к файлу пакета, о чем говорилось ранее. Понятно, что установка пакета с ftp-сервера требует подключения к Сети. Локальный же репозиторий, куда можно разместить пакеты, скачанные заблаговременно, избавляет от этой необходимости.

Проблема зависимостей

Установка пакетов посредством pacman происходит фантастически быстро. Что, в общем-то, понятно: ведь pacman просто распаковывает архив пакета и записывает его прекомпилированные компоненты куда следует. Поскольку никакой метаинформации в пакете не содержится, то и отслеживания зависимостей как бы не происходит.

Тем не менее контроль зависимостей в системе управления пакетам Archlinux существует. Эта функция возложена на внешнюю (по отношению к каждому пакету) базу данных, расположенную в каталоге /var/lib/pacman/. Она включает в себя два подкаталога — /var/lib/pacman/current/ и /var/lib/pacman/local.

В первом — база всех пакетов, охваченных дистрибутивом Arch Linux (вернее, официальной его частью). Она образована каталогами вида pkg-ver-rel (например, bash-2.

05b-6 — приводимые ниже примеры относятся к этому пакету), в каждом из которых имеется по два файла: desc — краткое описание пакета в форме

%NAME% bash %VERSION% 2.05b-6 %DESC% The GNU Bourne Again shell

и depends — список пакетов, с которыми данный связан зависимостями, а также, возможно, конфликтующих пакетов:

%DEPENDS% glibc grep readline ncurses %CONFLICTS%

В каталоге /var/lib/pacman/local/, как следует из его названия, содержится база пакетов, установленных на данной машине. Он образован точно также, как и /var/lib/pacman/current/, однако в каталоге каждого пакета — уже по три файла: desc, depends и files.

Описание пакета в файле desc включает, помимо краткой информации (аналогичной описанию из current), также даты построения и установки пакета, имя сборщика (для официальной части им выступает обобщённый archlinux), и суммарный размер:

%NAME% bash %VERSION% 2.05b-6 %DESC% The GNU Bourne Again shell %URL% %BUILDDATE% Mon Jan 06 22:49:26 2003 %INSTALLDATE% Wed Oct 22 08:14:09 2003 %PACKAGER% Arch Linux (http://www.archlinux.org) %SIZE% 1318400

В файле depends, кроме списка пакетов, от которых зависит данный, приведён и список пакетов, которые зависят от него:

%DEPENDS% glibc grep readline ncurses %REQUIREDBY% m4 diffutils autoconf automake …

Наконец, files — это просто список всех компонентов пакета с указанием путей, по которым они размещаются при инсталляции:

%FILES% bin/ bin/sh bin/bash etc/ etc/profile usr/ usr/man/ usr/man/man1/ usr/man/man1/bash.1

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

%BACKUP% etc/profile db618b683dee3f98f72bbb666ab0963c

Эта информация понадобится при удалении пакета командой pacman -R — для восстановления первозданной конфигурации системы (именно благодаря ей pacman способен к «чистой» деинсталляции пакетов).

Из структуры базы пакетов легко понять принцип контроля зависимостей в Archlinux: при установке нового пакета программа pacman сначала проверяет каталог /var/lib/pacman/current/ на предмет выявления его зависимостей, а потом — каталог /var/lib/pacman/local/ на предмет того, установлены ли пакеты, от которых зависит данный. Если все в порядке — пакет успешно устанавливается. Если же нет — выдаётся список имён недостающих пакетов (в порядке, котором они должны инсталлироваться) и работа pacman‘а завершается сообщением об ошибке. Никаких попыток разрешить нарушение зависимостей автоматически он не делает, оставляя это на долю пользователя.

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

Такая система может показаться не очень удобной. Хотя это гораздо лучше, чем классический rpm, где при нарушении зависимостей выдаётся что-нибудь типа недостачи библиотеки имя_рек.so.1 — и давай вычисляй, в состав какого пакета она входит. В Archlinux же вывод команды pacman выглядит примерно следующим образом:

pacman -A gnome-desktop-2.4.0-1.pkg.tar.gz 11:01 pts/2 error: unsatisfied dependencies: gnome-desktop: requires libgnome gnome-desktop: requires gnome-vfs

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

Руки против автоматики

Тем не менее, в сравнении с такими как-бы «продвинутыми» системами управления пакетами, как apt или даже yum, pacman выглядит весьма примитивно. Однако это а) не так (потому что он не более чем дополнение к ABS), и б) имеет свои преимущества.

Об ABS речь впереди, а вот о преимуществах «ручного» подхода pacman (в CRUX принята примерно такая же система, да и pkg-tools из Slackware не сильно от них отличается) перед системами типа apt я хотел бы поговорить подробнее ввиду их не полной очевидности.

Что происходит, когда мы прибегаем к услугам apt или yum? Система пакетного менеджмента определяет, что для установки данного пакета не хватает таких-то компонентов, связанных с ним зависимостями, отыскивает их (на локальном носителе или в Сети), скачивает, устанавливает (вместе со всеми уже их зависимостями), после чего благополучно инсталлирует запрошенный пакет. Красота, да и только — «и не думать ничего, фюрер мыслит за него» (пардон, майнтайнер, разумеется).

Однако вспомним, что зависимости пакетов бывают двух родов: обязательные, или жесткие, и не обязательные, так сказать, «мягкие».

Первые — объективная реальность, определяющая непременность их исполнения: никакую программу невозможно заставить работать без glibc (о статической линковке здесь не говорим), никакое X-приложение не будет функционировать без xlib, ни одна KDE-софтина не встанет без Qt и kdelibs.

«Мягкие» же зависимости к исполнению не обязательны, так как лишь обеспечивают пакету некоторые дополнительные функции, полезные, бесполезные, а то и откровенно вредные — причем понятие пользы и вреда тут откровенно субъективны.

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

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

Так вот, в Archlinux пользователь, получив предупреждение о том, что нужный ему пакет требует того-то и того-то, при минимальном опыте (и некотором представлении о зависимостях) может определить, относятся ли навязываемые ему зависимости к числу «жестких», объективных, или «мягких», обусловленных субъективными представлениями сборщика пакета. И во втором случае — осознанно сделать выбор:

  • простоты ради согласиться со сделанным ему предложением (что, правда, приведет к захламлению системы),
  • отказаться от удовлетворения зависимостей посредством опции nodeps (в этом случае есть некоторый риск того, что пакет не будет функционировать должным образом — впрочем, для «мягких» зависимостей риск этот не слишком велик),
  • или просто плюнуть и собрать требуемый пакет из исходников вручную — только с теми with/without и enable/disable, которые ему действительно нужны.

Конечно, ручная сборка тоже имеет свои минусы. Установленные помимо системы пакетов программы не попадут в базу данных. И соответственно, если в дальнейшем придется устанавливать пакеты, зависящие от такого «самосборника», через систему pacman‘а, то он не будет обнаружен последним.

Впрочем, если рассматривать Archlinux как фундамент для построения собственной системы, ограничившись только компонентами base и все остальное собирая вручную — такой путь вполне приемлем.

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

Поскольку база данных, используемая pacman‘ом, очень проста, никто не запрещает внести в нее сведения о «самосборном» пакете вручную (правда, здесь нет такого средства автоматизации этого процесса, как inject в Gentoo).

Впрочем, все сказанное о зависимостях относится только к случаю установки пакетов с локального носителя. И если пользоваться репозиториями пакетов с ftp-сервера проекта или его зеркал — силы не имеет. Потому что, как уже было сказано, простая команда pacman -Su выполнит полное обновление системы с разрешением всех зависимостей

Читайте также:  Несколько способов pppoe подключения в ubuntu 16.04

Однако у пользователя Arch’а есть и еще одна, более интересная, возможность. И это — использование ABS (Arch Build System), системы построения пакетов, о которой пойдёт речь в следующей заметке.

Источник: http://www.alv.me/pacman-upravlenie-paketami-v-archlinux/

You May Also Like

Источники:

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

Установка определенных пакетов

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

pacman -S имя_пакета1 имя_пакета2 …

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

pacman -S $(pacman -Ssq регулярное_выражение)

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

pacman -S extra/имя_пакета

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

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

pacman -S gnome

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

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

Enter a selection (default=all): 1-10 15

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

Enter a selection (default=all): ^5-8 ^2

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

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

pacman -Sg gnome

Перечень доступных групп пакетов можно изучить, посетив https://www.archlinux.org/groups/.

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

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

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

pacman -R имя_пакета

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

pacman -Rs имя_пакета

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

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

pacman -Rsc имя_пакета

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

pacman -Rdd имя_пакета

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

pacman -Rn имя_пакета

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

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

pacman может обновить все пакеты системы одной командой. Это может занять длительное время в зависимости от того, насколько свежие пакеты установлены в вашей системе. Следующая команда выполнит одновременно синхронизацию локальной базы данных репозиториев и обновление вашей системы (не будут обновлены 'локальные' пакеты, отсутствующие в настроенных репозиториях):

pacman -Syu

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

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

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

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

pacman -Q —help

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

pacman -S —help

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

pacman -Ss условие1 условие2 …

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

pacman -Qs условие1 условие2 …

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

pacman -Si имя_пакета

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

pacman -Qi имя_пакета

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

pacman -Qii имя_пакета

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

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

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

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

pacman -Qk имя_пакета

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

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

pacman -Qo /путь/к/файлу/имя_файла

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

pacman -Qdt

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

pacman -Qet

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

pactree имя_пакета

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

whoneeds имя_пакета

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

pactree -r имя_пакета

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

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

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

pacman -Sc

Важно:

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

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

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

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

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

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

paccache -r

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

paccache -ruk0

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

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

pkgcacheclean

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

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

pacman -Syu имя_пакета1 имя_пакета2 …

Скачать пакет, но не устанавливать его:

pacman -Sw имя_пакета

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

pacman -U /путь/к/пакету/имя_пакета-версия.pkg.tar.xz

Совет: Чтобы сохранить копию локального устанавливаемого пакета в кэше pacman'а, используйте:

pacman -U file://путь/к/пакету/имя_пакета-версия.pkg.tar.xz

Скачать и установить пакет из удаленного источника (но и не из репозиториев, перечисленных в конфигурационном файле pacman'a):

pacman -U http://www.example.com/repo/example.pkg.tar.xz

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

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

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

pacman -Qe

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

pacman -Qm

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

pacman -Qn

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

pacman -Qs regex

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

expac -s «%-30n %v» regex

(нужна expac).

С размером

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

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

expac -H M '%m %n' | sort -h

  • Запустите pacgraph с опцией -c.

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

expac -S -H M '%k %n' пакеты

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

expac -H M «%011m %-20n %10d» $( comm -23

Источник: https://BlackArch.ru/?p=205

Пакетный менеджер Arch Linux

Pacman — это быстрый и удобный менеджер пакетов для Arch Linux. Pacman позволяет установить пакеты, управляет уже установленными пакетами, поддерживает зависимости, группы, установку и удаление хуков.

Возможна синхронизация вашей локальной машины с удаленным ftp сервером для автоматического обновления пакетов. Пакеты Pacman'а представляют собой сжатые tar-архивы (.tar.gz). Начиная с версии 3.0.0, Pacman стал оболочкой к libalpm (“Arch Linux Package Management” library).

Эта библиотека позволяет использовать альтернативные оболочки (фронт-энды), например, GUI фронт-энды.

Операции

     -Q, —query   (запрос) Запрос к базе данных пакетов. Эта операция позволяет просматривать установленные пакеты и их файлы, а также мета-информацию об отдельных пакетах (зависимости, конфликты, дата инсталляции, дата сборки, размер). Это может быть применено в отношении локальной базы данных пакетов или в отношении отдельных .tar.gz пакетов. В первом случае, если имя пакета не было указано в командной строке, все установленные пакеты будут запрошены. Также, с этой операцией могут быть применены различные фильтры к списку пакетов. Смотрите «Опции запроса» ниже.

     -R, —remove (удаление)

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

Файлы, принадлежащие указанному пакету будут удалены и база данных обновится. Большинство файлов конфигурации будет сохранено с расширением .pacsave, если не используется —nosave опция.

Смотрите «Опции удаления» ниже

     -S, —sync (установка/обновление)

Устанавливает или обновляет пакеты. Пакеты устанавливаются непосредственно с ftp серверов, включая все зависимости, необходимые для запуска.

Следующая команда загрузит и установит qt и все пакеты — зависимости qt: pacman -S qt Если одноименный пакет существует более, чем в одном репозитории, то репозиторий может быть явно указан для уточнения нужного пакета: pacman -S testing/qt Также можно указать требуемую версию: pacman -S «bash>=3.

2″ (кавычки нужны, чтобы ваша оболочка не интерпретировала «>» как перенаправление в файл) Группы можно указывать также, как и пакеты.

Например, если gnome определен, как группа пакетов: pacman -S gnome Установит все пакеты, входящие в группу gnome и все зависимости этих пакетов Могут быть обработаны и взаимозаменяемые пакеты, например: pacman -S foo сначала будет искать пакет foo. Если foo не найден, то будет искаться пакет, обеспечивающий ту же самую функциональность.

Если такой пакет будет найден, он установится Используйте pacman -Su, чтобы обновить все пакеты, которые устарели. Смотрите «Опции установки/обновления» ниже. При обновлении, Pacman сравнивает версии пакетов, чтобы определить, которые из них нуждаются в обновлении. Вот так происходит сравнение:                Буквенно-цифровые:                  1.0a < 1.0alpha < 1.0b < 1.0beta < 1.0p < 1.0pre < 1.0rc < 1.0                Цифровые:                  1 < 1.0 < 1.1 < 1.1.1 < 1.2 < 2.0 < 3.0.0

    -T, —deptest (проверка зависимостей)

Проверяет зависимости. Полезно в скриптах, таких как makepkg, для проверки установленных пакетов. Эта операция проверяет каждую зависимость и возвращает список тех, которые в данный момент не удовлетворены в системе. Эта операция не может иметь каких-либо опций. Пример использования: pacman -T qt «bash>=3.2»

     -U, —upgrade (обновление)

Обновление или добавление пакетов в систему. Может быть указан URL или путь к файлу. Это процесс «удалить-и-добавить». Смотрите раздел обработка конфигурационных файлов для разъяснения, как Pacman работает с конфигами.

     -V, —version (версия)

Показывает версию Pacman'а.

     -h, —help (помощь)

Показывает синтаксис для заданной операции. Если операция не была задана, то будет приведен общий синтаксис: pacman -h Покажет общий синтаксис pacman -Rh Покажет синтаксис операции удаления, и все возможные ее опции с кратким описанием

Опции

Читайте также:  Установить virtualbox 5.1 в ubuntu/linux mint

     —asdeps Установить пакет неявно. Другими словами, пакет целиком сам по себе не нужен , а лишь входит как зависимость в другой. Эта опция полезна для makepkg и других инструментов для сборки из исходников, которым нужно установить зависимости до сборки пакета.

     —asexplicit

Установить пакет явно. Другими словами, подменяет причину установки, чтобы быть установленным явно. Это полезно, если вы хотите пометить зависимость, как явно установленную.

В этом случае пакет не может быть удален по обратным связям (с применением опции удаления —recursive).

      -b, —dbpath<\p>

Указывает альтернативный путь расположения базы данных (путь по умолчанию “/var/lib/pacman”).

Не используйте эту опцию, если не знаете, что делаете. Примечание: это абсолютный путь и корень «/» автоматически не выставлен.

     -d, —nodeps

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

     -f, —force

Пропускает проверку конфликтов и перезаписывает конфликтные файлы. Если устанавливаемый пакет содержит файлы, которые уже установлены, с этой опцией все эти файлы будут перезаписаны. Эта опция должна использоваться с осторожностью, в идеале — вообще не использоваться. Примечание: эта опция может быть полезна, если вы не можете установить пакет по причине существования файлов пакета в системе.

Так, например, я имел неосторожность установить версию cups 3.1.1 без интеграции с пакманом. При попытке поставить cups 4.1.2 через pacman -S cups pacman ругался на присутствие файлов от старого cups'а. Как раз для решения таких проблем может пригодиться pacman -Sf cups.

      -r, —root<\p>

Указывает альтернативную корневую директорию (по умолчанию «/»).

Не должно быть использовано в качестве средства для установки программного обеспечения в «/usr/local» вместо «/usr». Эта опция используется, если вы хотите установить пакет на временный монтированный раздел, который принадлежит другой системе. Примечание: если не указан путь к базе данных и к логу ни в командной строке, ни в pacman.

conf, то их местоположение по умолчанию будет в этой корневой директории.

     -v, —verbose

Подробная информация, такая как корневая директория, conf файл, путь к БД, путь к кэшу и так далее.  

     —debug

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

     —cachedir<\p>

Указывает другое местоположение кэша пакетов (по умолчанию это «/var/cache/pacman/pkg»).

Может быть задано множество кэш директорий, они будут переданы Pacman'у в том порядке, в котором задавались. Примечание: это абсолютный путь и корень «/» автоматически не выставлен.

     —config<\p>

Указывает альтернативный файл конфигурации.

     —logfile<\p>

Указывает альтернативный лог файл. Это абсолютный путь, который независим от настройки корневой директории.

     —noconfirm 

Не спрашивать любых подтверждений, таких как «Вы уверены?». Это не очень хорошая идея, если вы хотите запустить Pacman из скрипта.

     —noprogressbar

Не показывать прогрессбар при загрузке файлов. Это может быть полезно для скриптов, где вызывается Pacman и захватывается вывод.

     —noscriptlet

Не выполнять скриптлет, если он существует. Не используйте эту опцию, если не знаете, что делаете.

Опции запроса

     -c, —changelog Просматривает список изменений пакета. Не каждый пакет имеет список изменений, поэтому он будет показан только при его наличии.

     -d, —deps

Фильтр, который покажет все пакеты, установленные в качестве зависимостей. Эта опция может быть объединена с -t для показа «пакетов-сирот», которые были установлены как зависимости, но больше не требуются ни для одного пакета (-Qdt — эквивалент опции -Qe Pacman'а 3.0.X).

      -e, —explicit 

Фильтр, показывающий явно установленные пакеты. Эта опция может быть объединена с -t для отображения всех пакетов, которые были явно установлены, но не требуются никаким другим пакетам. ( -Qet — эквивалент опции -Qe Pacman'а 2.9.X).

      -g, —groups

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

     -i, —info

Показать информацию о заданном пакете. Опция -p может быть использована, если запрашивается информация из файла пакета вместо запроса из локальной бд. Передача двух -i или —info флагов покажут файлы резервных копий и состояния их изменений.

     -k —check

Проверяет, все ли файлы, принадлежащие данному пакету присутствуют в системе. Если пакеты не указаны, или не заданы флаги фильтров — проверяет все установленные пакеты.

     -l, —list

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

     -m, —foreign

Фильтр для пакетов, которые не были найдены при синхронизации с базой данных. Обычно, это пакеты, которые были загружены и установлены вручную с —upgrade.

     -o, —owns<\p>

Поиск пакета, которому принадлежит файл. Путь может быть относительным и абсолютным.

     -p, —file

Означает, что пакет, заданный в командной строке, является файлом, а не записью в базе данных.  Этот файл будет распакован и запрошен. Полезно использовать вместе с —info и —list.

     -q, —quiet

Показывать меньше информации для некоторых операций запросов. (Полезно, когда вывод Pacman'а обрабатывается в скрипте).

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

     -s, —search<\p>

Будет просматривать каждый локально установленный пакет или описание пакета на предмет соответствия регулярному выражению. Когда вы задаете несколько условий поиска, то возвращены будут только пакеты, удовлетворяющие ВСЕМ условиям.

     -u, —upgrades

Фильтр, отображающий только устаревшие пакеты в вашей системе. (Используются только версии для поиска устаревших пакетов). Эту опцию желательно применять вместе с синхронизацией с базой данных, используя -Sy.

Опции удаления

     -c, —cascade Удаляет все целевые пакеты, а также пакеты, которые зависят от одного или более целевых. Операция рекурсивна, и используйте ее с осторожностью, так как она может удалить много потенциально необходимых пакетов.

     -k, —keep

Удалит только записи в базе данных. Все файлы пакета останутся на месте.

     -n, —nosave

Заставляет Pacman игнорировать создание всех резервных копий. Обычно же, когда файл удаляется из системы, база данных проверяется и создает необходимые резервные копии с расширением «.pacsave».

     -s, —recursive

Удаляет указанный пакет, включая все его зависимости, при условии, что (а) они не нужны другим пакетам; и (б) они не были явно установлены пользователем. Операция рекурсивна и является обратным аналогом операции —sync. Помогает сохранить систему в чистоте, без пакетов-сирот. Если вы хотите исключить условие (б), поставьте эту опцию 2 раза (-ss).

     -u, —unneeded

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

     -c, —clean

Удаляет пакеты из кэша, которые на данный момент не установлены, а также текущие неиспользуемые загруженные базы данных. Используйте для увеличения свободного места на жестком диске. Сразу после загрузки Pacman сохраняет пакет в директорию кэша.

Кроме того, при каждой «синхронизации» с сервером, сохраняются базы данных, и не удаляются, даже если вы удалите их из файла конфигурации (pacman.conf). Повторите —clean один раз,  чтобы удалить неустановленные пакеты из кэша, поставьте два —clean, чтобы очистить весь кэш.

В обоих случаях, у вас будет выбор «да» или «нет» чтобы удалить пакеты и/или неиспользующиеся базы данных. Если вы используете общий сетевой кэш, смотрите параметр CleanMethod в pacman.conf.

     -g, —groups

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

     -i, —info

Показывает зависимости и другую информацию для данного пакета. Информация ищется по всем репозиториям для соответствующего пакета.

     -l, —list<\p>

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

     -p, —print-uris

Напечатает URI (ссылку) для каждого пакета, который будет установлен (включая его зависимости). Результат можно перенаправить в файл, и загрузить позже, используя, например, wget.

     -q, —quiet

Показывать меньше информации при некоторых операциях. (Это полезно, когда вывод Pacman'а обрабатывается в сценарии).

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

     -s, —search<\p>

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

     -u, —sysupgrade

Обновит все устаревшие пакеты. Каждый установленный в данный момент пакет будет рассмотрен и обновлен при условии сущестования новой версии. Все обновляемые пакеты будут представлены в виде списка, операция продолжится только после подтверждения пользователем.

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

В этом случае Pacman выберет пакеты, версии которых не совпадают с текущей — полезно, если пользователь хочет откатиться с версии репозитория testing до стабильной.

     -w, —downloadonly

Получить пакеты с сервера, но ничего не устанавливать/обновлять.

     -y, —refresh

Загрузить свежую копию основного списка пакетов с серверов, определенных в pacman.conf. Эта опция обычно используется при обновлении системы, вместе с —sysupgrade или -u. Передача двух флагов -u в любом случае обновит все списки, даже если они «думают», что и так самые свежие.

     —needed

Не обновлять пакеты, которые на данный момент самые свежие.

     —ignore<\p>

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

     —ignoregroup<\p>

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

Обработка конфигурационных файлов

Pacman использует такую же логику, как у rpm для того, чтобы определить действия в отношении конфигов. В процессе обновления будут использованы  3 md5 хэша для каждого файла конфигурации, они определят нужные действия: один для установленного оригинального файла, один для файла, который будет вот-вот установлен, и один для файла, фактически существующего в файловой системе. Эти 3 хэша сравниваются, и это приводит к следующим результатам:

Оригинальный = X, текущий = X, новый = X

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

Оригинальный = X, текущий = X, новый = Y

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

Оригинальный = X, текущий = Y, новый = X

Обе версии пакета содержат один и тот же файл, а текущий в файловой системе изменен. Оставляет текущий файл на месте.

Оригинальный = X, текущий = Y, новый = Y

Новый файл совпадает с текущим. Устанавливает новый файл.

Оригинальный = X, текущий = Y, новый = Z

Все 3 файла разные, и поэтому новый файл устанавливается с расширением .pacnew, о чем уведомляет пользователя. Пользователь должен отредактировать текущий файл для внесения необходимых изменений. Теперь, когда вы ознакомились с переводом man pacman, вы сможете более эффективно управлять пакетами в системе.

Источник статьи: serghost.ru

Источник: http://root-inform.blogspot.com/2011/12/arch-linux.html

Ссылка на основную публикацию