(pseudo-)package가 A
(pseudo-)package에 종속되어 있다고 가정합니다 B
.
A
저는 " 혼자 설치하면 얻을 수 없는 것, 설치하면 무엇을 얻을 수 있나요 B
?" 라는 질문에 답하기 위해 합리적으로 체계적인 방법을 찾고 있습니다.
A
가장 추상적인 용어로 와 B
의 종속성 그래프 간의 차이점을 확인하고 싶습니다 .
표준 도구를 사용하여 이를 수행하는 편리한 방법이 있습니까 dpkg*
?apt*
aptitude*
나는 가능한 한 일반적인 답변에 관심이 있기 때문에 구체적인 예를 들기는 꺼려지지만(이러한 예는 일반적인 경우에는 적용되지 않고 예에만 적용되는 답변으로 이어지는 경향이 있습니다), 필연적으로 누군가가 떠나게 됩니다. 구체적인 예시를 묻는 댓글은 다음과 같습니다.
A
그럴 수도 있고 task-xfce-desktop
아마도 B
그럴 것이다 xfce4
.
아니면 A
그럴 수도 xfce4
있고 B
그럴 수도 있습니다 xfdesktop4
.
편집: 설명(Stephen Kitt의 답변에 대한 응답): 저는 실제로 시스템의 현재 상태에 관계없이 절대 종속성 그래프의 차이점에 관심이 있습니다.
답변1
두 가지 방법, 즉 시스템에 적용될 변경 사항을 분석하는 방법과 전체 종속성 트리를 분석하는 방법을 자세히 설명하겠습니다.
시스템 변경 사항
"절대" 종속성 체인이 아닌 현재 시스템의 변경 사항에 관심이 있다고 가정하면 다음 두 패키지의 설치를 시뮬레이션하고 결과를 비교할 수 있습니다.
(comm -3 <(apt-get -s install A | awk '/^Inst / { print $2 }' | sort) <(apt-get -s install B | awk '/^Inst / { print $2 }' | sort)) 2>/dev/null
이를 위해서는 설치를 apt-get
시뮬레이션( ) 하고 설치될 패키지 목록을 필터링해야 합니다( 로 시작하는 줄의 두 번째 항목 ). 두 목록을 정렬하고 비교하여 모든 공개 패키지를 삭제합니다. ). 최종 리디렉션에서는 관련 없는 출력이 있으면 삭제 합니다 (그러나 오류는 표시되지 않습니다).-s
A
Inst
B
comm
-3
stderr
/dev/null
apt-get
xfce4
예를 들어 and 를 사용하면 xfdesktop4
다음과 같은 결과가 나옵니다(내 시스템에는 둘 다 설치되지 않았습니다).
gtk2-engines-xfce
libkeybinder-3.0-0
libxfce4panel-2.0-4
libxfce4ui-2-0
libxfce4ui-utils
orage
pavucontrol
thunar
thunar-volman
xfce4
xfce4-appfinder
xfce4-notifyd
xfce4-panel
xfce4-pulseaudio-plugin
xfce4-session
xfce4-settings
xfwm4
xscreensaver
xscreensaver-data
맨 왼쪽 열에는 단 하나의 열만 있으므로 이는 xfce4
설치 시 설치할 패키지 외에 내 시스템에 설치할 패키지 목록 입니다 xfdesktop4
. A
둘 다 B
서로 의존 하지 않음을 선택하면 두 개의 열이 표시됩니다. 첫 번째 열에는 A
고유 종속성이 표시되고 두 번째 열에는 B
고유 종속성이 표시됩니다.
완전한 종속성 트리
를 사용하여 전체 종속성 트리에서 작동하도록 조정할 수 있습니다 apt-rdepends
. 패키지 A가 의존하는 모든 고유 패키지를 얻으려면(직접 또는 사전 종속성을 포함하여 간접적으로) 다음을 수행하십시오.
apt-rdepends A | awk '/^ .*Depends/ { print $2; }' | sort -
이는 모든 버전 제한을 무시하지만 이 경우에는 많이 발생하지 않아야 합니다.
그러므로:
comm -3 <(apt-rdepends A | awk '/^ .*Depends/ { print $2; }' | sort -u) <(apt-rdepends B | awk '/^ .*Depends/ { print $2; }' | sort -u)
A와 B의 모든 종속성을 나열하고 고유한 종속성을 나열합니다(왼쪽 열에는 A에 고유하고 오른쪽 열에는 B에 고유함).
xfce4
다시 실행 xfdesktop4
하면
adwaita-icon-theme
dconf-gsettings-backend
dconf-service
desktop-file-utils
glib-networking
glib-networking-common
glib-networking-services
gsettings-backend
gsettings-desktop-schemas
gtk2-engines-xfce
hicolor-icon-theme
libasyncns0
libatk-bridge2.0-0
libatspi2.0-0
libcairo-gobject2
libcap2
libcolord2
libcroco3
libdconf1
libdrm2
libegl1-mesa
libepoxy0
libflac8
libgbm1
libgnutls30
libgtk-3-0
libgtk-3-bin
libgtk-3-common
libgudev-1.0-0
libhogweed4
libical1a
libidn11
libjson-c2
libjson-glib-1.0-0
libjson-glib-1.0-common
libkeybinder-3.0-0
liblcms2-2
libnettle6
libogg0
libpolkit-gobject-1-0
libpopt0
libproxy1v5
libpulse0
libpulse-mainloop-glib0
librest-0.7-0
librsvg2-2
librsvg2-common
libsndfile1
libsoup2.4-1
libsoup-gnome2.4-1
libsqlite3-0
libstdc++6
libudev1
libupower-glib3
libvorbis0a
libvorbisenc2
libwayland-client0
libwayland-cursor0
libwayland-egl1
libwayland-egl1-mesa
libwayland-server0
libwrap0
libxaw7
libxcb-dri2-0
libxcb-dri3-0
libxcb-present0
libxcb-randr0
libxcb-shape0
libxcb-sync1
libxcb-xfixes0
libxfce4panel-2.0-4
libxfce4ui-2-0
libxfce4ui-utils
libxkbcommon0
libxkbfile1
libxklavier16
libxmu6
libxpm4
libxshmfence1
libxt6
libxtst6
orage
thunar
tzdata
x11-xkb-utils
xfce4-appfinder
xfce4-panel
xfce4-pulseaudio-plugin
xfce4-session
xfce4-settings
xfdesktop4
xfwm4
xkb-data
apt-rdepends
권장 사항 또는 제안을 포함하려는 경우 옵션을 조정할 수 있습니다( -f
옵션 참조).