소프트웨어 종속성에 대해 제가 이해한 바는 패키지에 종속성이라고 하는 다른 패키지를 설치해야 할 수도 있다는 것입니다. 나무와 같은 결과가 나옵니다. 패키지가 공통 종속성을 공유하는 경우도 있지만 패키지는 한 번만 설치하면 됩니다.
|패키지 D |패키지 B--------->| |패키지 E 패키지 A -------->| |패키지 F |패키지 C--------->| |패키지 B
나는 최근에풀어 주다패키지의 종속성을 찾는 방법에 대해 AskUbuntu.com에 질문했는데, 이 작업을 수행하는 모든 방법이 다른 결과를 가져왔습니다. 그 이유는 일부 메소드가 단순히 종속성을 나열하는 것이 아니라 재귀 검사를 수행하는 메소드도 있고 역방향 검사를 수행하는 메소드도 있기 때문입니다.
역방향 종속성 검사와 재귀 종속성 검사의 차이점은 무엇입니까?
편집하다:
용어에 대한 참조. 나는 APT에 대해 게시한 주제에 대한 댓글에서 처음으로 이에 대해 들었지만 종속성 검사를 수행하는 데 사용할 수 있는 여러 프로그램과 해당 맨페이지에서 사용됩니다.
apt-cache rdependents는 역방향 종속성을 찾고 있으며, 내 스크립트와 apt-rdependents는 재귀적으로 종속성을 찾고 있습니다.
r은 패키지에 따라 다릅니다. rdependents는 패키지에 있는 모든 역방향 종속성의 목록을 표시합니다.
apt-rdependents - 다음과 유사한 재귀 종속성 목록을 수행합니다. 적절한 캐시
답변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
.
역재귀 종속성
이는 어떤 패키지가 패키지에 종속되고, 해당 패키지가 해당 패키지에 종속되는지를 보여줍니다. 이번에도 재귀적으로 수행됩니다.
예
$ 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
등으로 나열됩니다.
종속성 유형
다소 혼란스러울 수 있지만 여러 가지 종속 요소가 있습니다. 매뉴얼 페이지를 확인하십시오 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.