Ответ
Существует программа pactree, которая устанавливается вместе с пакетом pacman .
Он используется для отображения дерева зависимостей для указанного пакета.
Вы можете использовать это так:
pactree -u <package_name>
Однако, в отличие от pacman -Sp <package_name>
, pactree принимает только одно имя пакета.
Одно решение
Есть несколько способов обойти эту проблему, но, судя по вашему вопросу, у меня нет ощущения, что вы знакомы со скриптами оболочки (извините, если я ошибаюсь), поэтому я объясню одно решение в деталях:
echo "package_name1 package_name2 ..." | xargs -n 1 pactree -u | sort -u | xargs -n 1 pacman -Sp > /myPackages.list
echo
- Встроенная команда оболочки: выводит аргумент в stdout
(с добавленной новой строкой).
|
- Труба: перенаправляет stdout
от левой команды к stdin
правой команде.
xargs
- Внешняя команда: принимает stdin
и добавляет ее в список аргументов данной команды.
-n 1
- xargs
опция: выполнить данную команду один раз для каждого аргумента из stdin
.
pactree
- Внешняя команда: Показать дерево зависимостей для данного пакета.
-u
- pactree
option: вместо графика вывести каждый пакет зависимостей в отдельной строке.
sort
- Внешняя команда: сортирует текст из stdin
и записывает его в stdout
.
-u
- sort
опция: удаляет дубликаты из отсортированных stdin
.
(Это необходимо, потому что некоторые пакеты могут иметь одинаковые зависимости.)
Вы знакомы с остальной частью линии.
Заметка
pacman -Sp
сообщит об ошибке, если вы передадите пакет из AUR.
РЕДАКТИРОВАТЬ 17.09.2018
Как указывает JdeBP, pactree
сейчас находится в пакете pacman-contrib .