monodevelop
たとえば、systemd
。
apt-rdepends -r systemd
systemd に直接または間接的に依存するすべてのパッケージを表示します。
$ apt-rdepends --dotty -r systemd | grep monodevelop
"monodevelop" -> "libgnome2.24-cil";
...
debtree monodevelop
monodevelop
次に直接または間接に依存するすべてのパッケージを表示します。
$ debtree monodevelop | grep -- '-> "systemd"'
"libpam-systemd" -> "systemd" [color=blue,label="(= 215-6)"];
...
monodevelop
しかし、からのチェーンをどのように簡単に表示できますかsystemd
?
チェーンの1つの例:
monodevelop -> libgnome2.24-cil -> libgnome2-0 -> gvfs -> gvfs-daemons -> udisks2 -> libpam-systemd -> systemd
答え1
この目的のためにオネライナーが開発された。
$ apt-rdepends --dot -r systemd | perl -ne 'our %chains; if(m!"([^"]+)" -> "([^"]+)"[^"]*;!) { my $c="$2 $chains{$2}"; $chains{$1}=$c; print "$1 $c\n" }' | grep '^monodevelop '
Reading package lists... Done
Building dependency tree
Reading state information... Done
monodevelop libgnome2.24-cil libgnomeui-0 libbonoboui2-0 libgnome2-0 gvfs gvfs-daemons udisks2 libpam-systemd systemd
答え2
awk
あなたのperl
文と同じです:
apt-rdepends -dr systemd |
awk -F\" '/->/{print $2,c[$2]=$4" "c[$4]}' |
grep '^monodevelop'