#08-04 [hack]Dependency tree of debian package
自分の作ったパッケージの依存関係を確認したかったので、探してみたけど発見できなかった…。
しょうがないのででっち上げ。apt-cacheを再起的に実行しているだけ。
#!/usr/bin/perl my $APTCACHE = 'apt-cache depends'; my $level = 0; my %count; my $cmd = $0; $cmd = shift if ($ARGV[0] =~ /^-/); foreach (@ARGV) { %count = (); print "$_:"; doDepends($_); print "\n"; } sub doDepends { my @ar = (); open(FD, "$APTCACHE $_[0] |"); while (<FD>) { push @ar, $1 if (/Depends: (.*)/); } close(FD); return if ($#ar < 0); @ar = grep !$count{$_}++, @ar if ($cmd ne "-r" && $cmd ne "--redundant"); $level++; foreach (@ar) { print "\n" . " " x $level . $_; doDepends($_); } $level--; }こんな感じになる。
% deptree lynx lynx: libc6 libncurses libopenssl % deptree -r lynx lynx: libc6 libncurses libc6 libopenssl libc6絶対きっとどこかにあるよなこんなの。