Просто сделал это с помощью сценария удара
#!/bin/bash
c=0
[[ $# -eq 0 ]] && { echo "Error: Please Specify Input file" >&2; exit 1; }
while read line
do
if [[ $line = "-" ]]; then
(( c++ ))
if [[ $c -eq 1 ]]; then
echo ""
fi
elif [[ $line != "" ]] && [[ $c -ne 0 ]]; then
echo "- ${line}"
(( c-- ))
if [[ $c -eq 0 ]]; then
echo ""
fi
elif [[ $line =~ "- " ]] && [[ $c -ne 0 ]]; then
echo " $line"
else
echo "$line"
fi
done < $1
Протестированный и работающий с входным примером.
]Обратный ход зависит от того, от каких пакетов вы хотите получить список пакетов, которые зависят от данного пакета.[
] [$ apt-cache rdepends jetty
jetty
Reverse Depends:
solr-jetty
libjetty-java
libjetty-extra-java
libjetty-extra
libini4j-java
guacamole
]
[]Использование такого инструмента, как []apt-rdepends[
] показывает, от каких пакетов зависит данный пакет, а также от каких пакетов эти пакеты также зависят. Это выполняется рекурсивно, пока не будет исчерпано все дерево зависимостей.[
$ apt-rdepends jetty | head -10
Reading package lists... Done
Building dependency tree
Reading state information... Done
jetty
Depends: adduser
Depends: apache2-utils
Depends: default-jre-headless
Depends: java5-runtime-headless
Depends: jsvc
Depends: libjetty-java (>= 6.1.26-1ubuntu1)
adduser
Depends: debconf
Depends: debconf-2.0
...
]
[]Выше видно, что []jetty[
] зависит от []adduser[
], который сам по себе зависит от []debconf[
].[
]This one shows what packages depend on a package that зависит от данного пакета. Это снова делается рекурсивно.[
] [$ apt-rdepends --reverse jetty
Reading package lists... Done
Building dependency tree
Reading state information... Done
jetty
Reverse Depends: solr-jetty (>= 3.6.1+dfsg-0ubuntu2)
solr-jetty
Reverse Depends: chef-solr (>= 10.12.0+dfsg-1)
chef-solr
Reverse Depends: chef-expander (>= 10.12.0-1)
Reverse Depends: chef-server-api (>= 10.12.0-1)
chef-expander
chef-server-api
Reverse Depends: chef-server-webui (>= 10.12.0+dfsg-1)
chef-server-webui
]
[]Снова здесь, когда исследуется дерево, первый пакет, который перечисляет []jetty[
] как зависимую []solr-jetty[
], которая, в свою очередь, перечисляется как зависимость для []chef-solr[
], и т.д.[
]Это может немного запутать, но существует множество зависимостей. Глядя на man-страницу для []apt-rdepends[
]:[
-f, --follow=DEPENDS
A comma-separated list of DEPENDS types to follow recursively.
By default, it only follows the Depends and PreDepends types.
The possible values for DEPENDS are: Depends, PreDepends, Suggests,
Recommends, Conflicts, Replaces, and Obsoletes.
In --build-depends mode, the possible values are: Build-Depends,
Build-Depends-Indep, Build-Conflicts, Build-Conflicts-Indep.
]