Каково различие между рекурсивной проверкой зависимости и обратной проверкой зависимости?

Просто сделал это с помощью сценария удара

#!/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

Протестированный и работающий с входным примером.

7
13.04.2017, 15:22
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[].[

] [

]Reverse recursive depends[

] [

]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.
]
13
27.01.2020, 20:16

Теги

Похожие вопросы