どのバイナリがどのパッケージに含まれるかを調べる
世の中binary2.0なムードが高まっていますが、
今日会社のLinux masterな方に聞いた手法。
あと自分で少し工夫してみたです。
sano++
方法1
下記みたいなコマンドで出来るハズ。
# rpm -qa | sort | sed -e "s/.*/rpm -ql &/g" > package.sh # script package.log # sh -x package.sh # exit # cat package.log
方法2
スクリプト化しますた。
#!/bin/sh for p in `rpm -qa | sort`; do echo -e "+ $p"; for entry in `rpm -ql $p`; do if [ -f $entry -a -x $entry ]; then echo -e "\t$entry" fi done done
これをとりあえずrpmbintree.shとか名前付けて。
# ./rpmbintree.sh + ElectricFence-2.2.2-20.2.2 /usr/bin/ef /usr/lib/libefence.so /usr/lib/libefence.so.0 /usr/lib/libefence.so.0.0 + GConf2-2.14.0-2.1 /usr/bin/gconf-merge-tree /usr/bin/gconftool-2 /usr/lib/GConf/2/libgconfbackend-evoldap.so /usr/lib/GConf/2/libgconfbackend-oldxml.so /usr/lib/GConf/2/libgconfbackend-xml.so /usr/lib/libgconf-2.so.4 /usr/lib/libgconf-2.so.4.1.0 /usr/libexec/gconf-sanity-check-2 /usr/libexec/gconfd-2
これでもしHackしたいバイナリがあったらば、どのパッケージか分かるので、
srpmなど探してrpm2cpio, cpioとかでソースを取り出したり出来ます。