시스템 변경 사항

시스템 변경 사항

(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시뮬레이션( ) 하고 설치될 패키지 목록을 필터링해야 합니다( 로 시작하는 줄의 두 번째 항목 ). 두 목록을 정렬하고 비교하여 모든 공개 패키지를 삭제합니다. ). 최종 리디렉션에서는 관련 없는 출력이 있으면 삭제 합니다 (그러나 오류는 표시되지 않습니다).-sAInstBcomm-3stderr/dev/nullapt-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옵션 참조).

관련 정보