Как в pacman выполнить установку пакетов с подстановочным знаком (или по регулярному выражению)
Если вы попробуете использовать подстановочные знаки в команде pacman для установки сразу нескольких пакетов, то у вас это не получиться.
К примеру, я хочу одной командой установить все пакеты имя которых начинается с «kodi-addon-». Попробуем это сделать следующей командой:
sudo pacman -S kodi-addon-*
Команда завершиться ошибкой:
error: target not found: kodi-addon-*
Это вдвойне неприятно, поскольку в дистрибутивах на основе Debian с помощью менеджера пакетов apt похожий синтаксис является допустимым, например:
sudo apt install kodi-audiodecoder-*
Были найдены интересующие нас пакеты по части имени и подстановочному знаку:
Note, selecting 'kodi-audiodecoder-sidplay' for glob 'kodi-audiodecoder-*' Note, selecting 'kodi-audiodecoder-openmpt' for glob 'kodi-audiodecoder-*' Note, selecting 'kodi-audiodecoder-fluidsynth' for glob 'kodi-audiodecoder-*' Installing: kodi-audiodecoder-fluidsynth kodi-audiodecoder-openmpt kodi-audiodecoder-sidplay
В pacman подстановочные знаки (и регулярные выражения) работают только при поиске пакетов, но не работают при установке. Тем не менее, два этих действия (поиск пакетов и их установка) можно совместить в одной команде:
sudo pacman -S $(pacman -Ssq 'РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ')
В качестве РЕГУЛЯРНОГО_ВЫРАЖЕНИЯ могут быть:
- часть имени пакетов
- часть имени пакетов и подстановочные знаки
- регулярное выражение
Примечание: обратите внимание, что если строка поиска (РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ) содержит в себе символы, которые имеют специальное значение для оболочки, то такую строку нужно помещать в кавычки. Если вы используете часть имени пакетов без, например «*» или «|», то вы можете опускать кавычки.
Например, следующая команда установит все пакеты имя которых имеет вид «kodi-addon-»:
sudo pacman -S $(pacman -Ssq kodi-addon-)
Рассмотрим пример использования регулярного выражения — следующая команда установить все пакеты, имена которых имеют вид «kodi-addon-audioencoder-*» ИЛИ «kodi-addon-imagedecoder-*»:
sudo pacman -S $(pacman -Ssq 'kodi-addon-audioencoder-|kodi-addon-imagedecoder-')
Перед выполнением установки, вы можете проверить, какие именно пакеты будут установлены, для этого используйте следующую команду:
pacman -Ssq 'РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ'
Например:
pacman -Ssq 'kodi-addon-audioencoder-|kodi-addon-imagedecoder-'
Эта команда выведет список пакетов:
kodi-addon-audioencoder-flac kodi-addon-audioencoder-lame kodi-addon-audioencoder-vorbis kodi-addon-audioencoder-wav kodi-addon-imagedecoder-heif kodi-addon-imagedecoder-raw
Ещё одна проверка перед установкой пакетов:
pacman -Ssq kodi-addon-
Будут найдены следующие пакеты, соответствующие указанному шаблону имени:
kodi-addon-audioencoder-flac kodi-addon-audioencoder-lame kodi-addon-audioencoder-vorbis kodi-addon-audioencoder-wav kodi-addon-imagedecoder-heif kodi-addon-imagedecoder-raw kodi-addon-inputstream-adaptive kodi-addon-inputstream-rtmp kodi-addon-peripheral-joystick kodi-addon-screensaver-asteroids kodi-addon-screensaver-biogenesis kodi-addon-screensaver-greynetic kodi-addon-screensaver-matrixtrails kodi-addon-screensaver-pingpong kodi-addon-screensaver-pyro kodi-addon-screensaver-stars kodi-addon-visualization-projectm kodi-addon-visualization-shadertoy kodi-addon-visualization-spectrum kodi-addon-visualization-waveform
Как в pacman выполнить удаление пакетов с подстановочным знаком (по регулярному выражению)
Для удаления пакетов по части имени или регулярному выражению вы можете использовать следующую команду:
sudo pacman -R $(pacman -Qsq 'РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ')
Примеры:
sudo pacman -R $(pacman -Qsq 'kodi-addon-audioencoder-|kodi-addon-imagedecoder-')
sudo pacman -R $(pacman -Qsq 'kodi-addon-')
Если предварительно вы хотите проверить, какие именно пакеты будут удалены, то используйте команду следующего вида:
pacman -Qsq 'РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ'
Обратите внимание, что это не та же самая команда, которая использовалась для проверки, какие пакеты будут установлены по указанному регулярному выражению. В первом разделе мы использовали операцию -S (поиск по всем пакетам репозитория), а для удаления мы используем операцию -Q (поиск только по установленным пакетам).
Примеры:
pacman -Qsq 'kodi-addon-' pacman -Qsq 'kodi-addon-audioencoder-|kodi-addon-imagedecoder-'
Смотрите также:
- Практические примеры использования pacman
- Pacman: работа с пакетами в BlackArch (перевод справки и мануала)
Близкие статьи
- Pacman: работа с пакетами в BlackArch (перевод справки и мануала) (100%)
- Практические примеры использования pacman (100%)
- Графический интерфейс и цветной вывод pacman (100%)
- Как установить программу из Arch User Repository (AUR) – пользовательского репозитория Arch (100%)
- Автоматическая установка и обновление пакетов AUR (100%)
- Ошибка error: failed to update core (unable to lock database) (РЕШЕНО) (RANDOM - 73%)