Как использовать управление пакетами Arch Linux

Начинаем

Arch Linux предоставляет средства управления пакетами, аналогичные тем, которые содержатся в других современных дистрибутивах Linux. Это руководство по общим операциям управления пакетами.

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

sudo pacman -Sy

поиск

Благодаря за краткость в отношении интуитивности, большинство операций управления пакетами в Arch Linux отображаются в формате:

pacman -<a-z><a-z>.

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

pacman -Ss <package> 

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

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

Вот как вы бы перечислили все стандартные пакеты с ключевым словом «linux».

pacsearch linux

Иногда будет много пакетов, соответствующих вашим критериям поиска. Это особенно актуально при использовании помощника AUR, такого как yaourt. Регулярные выражения могут помочь сузить список. Например, предположим, вы пытаетесь найти что-либо, связанное с инструментом «ack». Обычный поиск ack неизбежно возвратит много результатов для просеивания, благодаря словам типа «пакет», «взломать» или «воспроизвести».

pacsearch ack

Однако не многие слова начинаются с ack. Добавление слова «^» в поисковое слово будет включать только те результаты, которые начинаются с этих букв. Это работает, по крайней мере, с pacsearch, pacman и yaourt.

pacsearch ^ack 

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

pacsearch 'c\+\+'

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

pacsearch linux | grep local -A 1

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

pacman -Qs linux

Если вы хотите подсветку цветом с помощью pacman -Ss, вы можете раскомментировать цвет из /etc/pacman.conf. Тем не менее, это подчеркивает разные вещи, чем pacsearch, поэтому вы можете попробовать оба и посмотреть, какой из них вам больше нравится.

sudo vi /etc/pacman.conf

...
# Misc options
#UseSyslog
Color
#TotalDownload
CheckSpace
#VerbosePkgLists
...

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

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

pacman -Qi linux

Name           : linux
Version        : 3.8.4-1
Description    : The linux kernel and modules
Architecture   : x86_64
URL            : http://www.kernel.org/
Licenses       : GPL2
Groups         : base
Provides       : kernel26=3.8.4
Depends On     : coreutils  linux-firmware  kmod  mkinitcpio>=0.7
Optional Deps  : crda: to set the correct wireless channels of your country
Required By    : None
Optional For   : None
Conflicts With : kernel26
Replaces       : kernel26
Installed Size : 64728.00 KiB
Packager       : Tobias Powalowski <tpowa@archlinux.org>
Build Date     : Wed Mar 20 21:16:17 2013
Install Date   : Fri Mar 29 01:02:14 2013
Install Reason : Explicitly installed
Install Script : Yes
Validated By   : Unknown

Если pacman -Qi не передал никаких аргументов, он возвращает все пакеты в системе. Вы можете выполнить поиск на этом выходе, чтобы получить специализированную информацию об установленных пакетах.

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

pacman -Qi | grep -e "Name" -e "Installed Size"

Name           : a52dec
Installed Size : 244.00 KiB
Name           : aalib
Installed Size : 768.00 KiB
...

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

pacman -Si linux

Repository     : core
Name           : linux
Version        : 3.11.6-1
Description    : The Linux kernel and modules
Architecture   : x86_64
URL            : http://www.kernel.org/
Licenses       : GPL2
Groups         : base
Provides       : kernel26=3.11.6
Depends On     : coreutils  linux-firmware  kmod  mkinitcpio>=0.7
Optional Deps  : crda: to set the correct wireless channels of your country
Conflicts With : kernel26
Replaces       : kernel26
Download Size  : 47855.98 KiB
Installed Size : 64493.00 KiB
Packager       : Thomas Bächler <thomas@archlinux.org>
Build Date     : Fri 18 Oct 2013 05:25:12 PM EDT
Validated By   : MD5 Sum  SHA256 Sum  Signature

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

pacman -Ql vi

vi /usr/
vi /usr/bin/
vi /usr/bin/edit
vi /usr/bin/ex
vi /usr/bin/vedit
vi /usr/bin/vi
...

Имя пакета в каждой строке может сделать вывод более сложным для использования в скрипте. pacman -Qlq (т. е. «список запросов pacman, quiet») не будет печатать имя пакета.

pacman -Qlq vi

/usr/
/usr/bin/
/usr/bin/edit
/usr/bin/ex
/usr/bin/vedit
/usr/bin/vi
...

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

pacman -Qql pacman | grep bin

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

Расход энергии

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

pacsysclean

Если вам нужно что-то более сложное, утилита pacgraph может создавать облако слова зависимостей самых больших пакетов в формате SVG и PNG.

pacgraph находится в репозитории сообщества.

sudo pacman -S pacgraph

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

pacgraph -c | head

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

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

export LANG=en_US.UTF-8

Выполняется без каких-либо аргументов, pacgraph создает SVG и, если возможно, файл PNG. Если у вас нет системы обмена файлами, настроенной на вашем виртуальном сервере, самый простой способ доступа к изображениям, созданным pacgraph, — использовать Secure Copy.

scp <user>@<addr>:<remote_path> <local_path>

Примечание . Хотя pacgraph будет требовать рендеринга PNG-файла после установки imagemagick и libpng, на момент написания этой статьи он фактически не будет генерировать PNG без Inkscape, который имеет довольно много зависимостей.

Загрузки / Установка

Типичным способом установки или обновления стандартного пакета является pacman -S.

sudo pacman -S <package>

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

sudo pacman -S lua-{sec,socket,zlib}

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

sudo pacman -Sw <package>

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

sudo pacman -U <package_path>

Обновления

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

Pacman может перечислить устаревшие пакеты.

pacman -Qu

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

Вы можете получить версию из pacman -Qi или pacman -Si, используя регулярное выражение.

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

3.8.4-1

А затем напишите сценарий, который показывает версии рядом.

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

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

sudo pacman -Syu

понизило

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

кэш

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

ls /var/cache/pacman/pkg | grep linux

linux-3.11.6-1-x86_64.pkg.tar.xz
linux-3.9.7-1-x86_64.pkg.tar.xz
...

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

pacman -U <path_to_cached_file>

Машина для откатывания арки

Arch Rollback Machine представляет собой коллекцию снимков официального зеркала Arch Linux. На момент написания этой статьи он длился четыре месяца. ARM в настоящее время размещается по адресу http://seblu.net/a/arm , хотя это может измениться в будущем.

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

pacman -U http://seblu.net/a/arm/2013/08/31/extra/os/x86_64/apache-2.2.25-1-x86_64.pkg.tar.xz

Невозможно просмотреть ARM для старых пакетов. К счастью, есть инструменты, которые делают это проще:

  • упадок
  • downgrader

Они ищут более старые версии в кеше и ARM. Их использование — то, что вы ожидаете.

downgrade <package>
downgrader <package>

Оба инструмента находятся в AUR, поэтому самый простой способ их установки будет с помощником, например yaourt.

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

Удаление

Удалите пакет, если ничего не зависит от него. Оставьте установленные зависимости.

sudo pacman -R <package>

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

sudo pacman -Rs <package>

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

sudo pacman -Rdd <package>

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

Подавляющее большинство пакетов Arch Linux находятся в хранилище Arch User Repository . Лучший способ поиска и загрузки пакетов из AUR — использовать вспомогательный инструмент .

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *