■
MacOSXでrpm2cpio
rpm2cpioをMacにインストールする場合brew辺りを使うみたいだが、以下のサイトにシェルがあった。
rpmのヘッダ部分を解析してcpioを取り出すツール。Macでrpmの中身を見たいなんてことは滅多にないのでシェルで提供されているこのツールはグッド。ただ、圧縮形式にgzip/bunzip2/xzがあるのでxzについてはbrewやMacPortsでインストールしておく。
$ chmod 755 rpm2cpio.sh $ cat rpm2cpio.sh #!/bin/sh pkg=$1 if [ "$pkg" = "" -o ! -e "$pkg" ]; then echo "no package supplied" 1>&2 exit 1 fi leadsize=96 o=`expr $leadsize + 8` set `od -j $o -N 8 -t u1 $pkg` il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5` dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9` # echo "sig il: $il dl: $dl" sigsize=`expr 8 + 16 \* $il + $dl` o=`expr $o + $sigsize + \( 8 - \( $sigsize \% 8 \) \) \% 8 + 8` set `od -j $o -N 8 -t u1 $pkg` il=`expr 256 \* \( 256 \* \( 256 \* $2 + $3 \) + $4 \) + $5` dl=`expr 256 \* \( 256 \* \( 256 \* $6 + $7 \) + $8 \) + $9` # echo "hdr il: $il dl: $dl" hdrsize=`expr 8 + 16 \* $il + $dl` o=`expr $o + $hdrsize` EXTRACTOR="dd if=$pkg ibs=$o skip=1" COMPRESSION=`($EXTRACTOR |file -) 2>/dev/null` if echo $COMPRESSION | grep -q gzip; then DECOMPRESSOR=gunzip elif echo $COMPRESSION | grep -q bzip2; then DECOMPRESSOR=bunzip2 elif echo $COMPRESSION | grep -q xz; then DECOMPRESSOR=unxz elif echo $COMPRESSION | grep -q cpio; then DECOMPRESSOR=cat else # Most versions of file don't support LZMA, therefore we assume # anything not detected is LZMA DECOMPRESSOR=`which unlzma 2>/dev/null` case "$DECOMPRESSOR" in /* ) ;; * ) DECOMPRESSOR=`which lzmash 2>/dev/null` case "$DECOMPRESSOR" in /* ) DECOMPRESSOR="lzmash -d -c" ;; * ) DECOMPRESSOR=cat ;; esac ;; esac fi $EXTRACTOR 2>/dev/null | $DECOMPRESSOR $ ./rpm2cpio.sh rpm-build-5.4.10-10-mdv2012.0.x86_64.rpm | cpio -tv -rwxr-xr-x 1 root wheel 963 Nov 6 2012 ./usr/bin/gendiff -rwxr-xr-x 1 root wheel 305 Nov 6 2012 ./usr/bin/multiarch-platform -rwxr-xr-x 1 root wheel 23712 Nov 6 2012 ./usr/bin/rpmbuild -rwxr-xr-x 1 root wheel 719850 Nov 6 2012 ./usr/lib/rpm/bin/api-sanity-autotest.pl -rwxr-xr-x 1 root wheel 721319 Nov 6 2012 ./usr/lib/rpm/bin/api-sanity-checker.pl -rwxr-xr-x 1 root wheel 10568 Nov 6 2012 ./usr/lib/rpm/bin/dbsql -rwxr-xr-x 1 root wheel 32648 Nov 6 2012 ./usr/lib/rpm/bin/debugedit -rwxr-xr-x 1 root wheel 13997 Nov 6 2012 ./usr/lib/rpm/bin/install-sh -rwxr-xr-x 1 root wheel 3538 Nov 6 2012 ./usr/lib/rpm/bin/mkinstalldirs -rwxr-xr-x 1 root wheel 17311 Nov 6 2012 ./usr/lib/rpm/bin/pom2spec -rwxr-xr-x 1 root wheel 19488 Nov 6 2012 ./usr/lib/rpm/bin/rpmcache -rwxr-xr-x 1 root wheel 10816 Nov 6 2012 ./usr/lib/rpm/bin/rpmcmp -rwxr-xr-x 1 root wheel 20400 Nov 6 2012 ./usr/lib/rpm/bin/rpmdeps -rwxr-xr-x 1 root wheel 32592 Nov 6 2012 ./usr/lib/rpm/bin/rpmdigest -rwxr-xr-x 1 root wheel 24856 Nov 6 2012 ./usr/lib/rpm/bin/rpmkey -rwxr-xr-x 1 root wheel 10704 Nov 6 2012 ./usr/lib/rpm/bin/rpmrepo -rwxr-xr-x 1 root wheel 10568 Nov 6 2012 ./usr/lib/rpm/bin/sqlite3 -rwxr-xr-x 1 root wheel 1452 Nov 6 2012 ./usr/lib/rpm/brp-compress -rwxr-xr-x 1 root wheel 1418 Nov 6 2012 ./usr/lib/rpm/brp-java-gcjcompile -rwxr-xr-x 1 root wheel 677 Nov 6 2012 ./usr/lib/rpm/brp-nobuildrootpath -rwxr-xr-x 1 root wheel 951 Nov 6 2012 ./usr/lib/rpm/brp-python-bytecompile -rwxr-xr-x 1 root wheel 1075 Nov 6 2012 ./usr/lib/rpm/brp-sparc64-linux -rwxr-xr-x 1 root wheel 561 Nov 6 2012 ./usr/lib/rpm/brp-strip -rwxr-xr-x 1 root wheel 853 Nov 6 2012 ./usr/lib/rpm/brp-strip-comment-note -rwxr-xr-x 1 root wheel 758 Nov 6 2012 ./usr/lib/rpm/brp-strip-shared -rwxr-xr-x 1 root wheel 465 Nov 6 2012 ./usr/lib/rpm/brp-strip-static-archive -rwxr-xr-x 1 root wheel 569 Nov 6 2012 ./usr/lib/rpm/check-files -rwxr-xr-x 1 root wheel 2804 Nov 6 2012 ./usr/lib/rpm/check-multiarch-files -rwxr-xr-x 1 root wheel 283 Nov 6 2012 ./usr/lib/rpm/executabledeps.sh -rwxr-xr-x 1 root wheel 9623 Nov 6 2012 ./usr/lib/rpm/find-debuginfo.sh -rwxr-xr-x 1 root wheel 7912 Nov 6 2012 ./usr/lib/rpm/find-lang.sh -rwxr-xr-x 1 root wheel 4188 Nov 6 2012 ./usr/lib/rpm/find-prov.pl -rwxr-xr-x 1 root wheel 44 Nov 6 2012 ./usr/lib/rpm/find-provides.perl -rwxr-xr-x 1 root wheel 3571 Nov 6 2012 ./usr/lib/rpm/find-req.pl -rwxr-xr-x 1 root wheel 44 Nov 6 2012 ./usr/lib/rpm/find-requires.perl -rwxr-xr-x 1 root wheel 489 Nov 6 2012 ./usr/lib/rpm/fontconfig.prov -rwxr-xr-x 1 root wheel 4535 Nov 6 2012 ./usr/lib/rpm/gem_helper.rb -rwxr-xr-x 1 root wheel 794 Nov 6 2012 ./usr/lib/rpm/getpo.sh -rwxr-xr-x 1 root wheel 1303 Nov 6 2012 ./usr/lib/rpm/gstreamer.sh -rwxr-xr-x 1 root wheel 574 Nov 6 2012 ./usr/lib/rpm/haskelldeps.sh drwxr-xr-x 2 root wheel 0 Nov 6 2012 ./usr/lib/rpm/helpers -rwxr-xr-x 1 root wheel 62 Nov 6 2012 ./usr/lib/rpm/helpers/makeshlibs -rwxr-xr-x 1 root wheel 4451 Nov 6 2012 ./usr/lib/rpm/http.req -rwxr-xr-x 1 root wheel 1928 Nov 6 2012 ./usr/lib/rpm/javadeps.sh -rwxr-xr-x 1 root wheel 1821 Nov 6 2012 ./usr/lib/rpm/kmod-deps.sh -rwxr-xr-x 1 root wheel 707 Nov 6 2012 ./usr/lib/rpm/libtooldeps.sh -rw-r--r-- 1 root wheel 22769 Nov 6 2012 ./usr/lib/rpm/macros.rpmbuild -rwxr-xr-x 1 root wheel 2406 Nov 6 2012 ./usr/lib/rpm/mkmultiarch -rwxr-xr-x 1 root wheel 1666 Nov 6 2012 ./usr/lib/rpm/mono-find-provides -rwxr-xr-x 1 root wheel 4914 Nov 6 2012 ./usr/lib/rpm/mono-find-requires -rwxr-xr-x 1 root wheel 5700 Nov 6 2012 ./usr/lib/rpm/osgideps.pl -rwxr-xr-x 1 root wheel 6269 Nov 6 2012 ./usr/lib/rpm/perl.prov -rwxr-xr-x 1 root wheel 9502 Nov 6 2012 ./usr/lib/rpm/perl.req -rwxr-xr-x 1 root wheel 8846 Nov 6 2012 ./usr/lib/rpm/perldeps.pl -rwxr-xr-x 1 root wheel 1115 Nov 6 2012 ./usr/lib/rpm/php.prov -rwxr-xr-x 1 root wheel 2586 Nov 6 2012 ./usr/lib/rpm/php.req -rwxr-xr-x 1 root wheel 1380 Nov 6 2012 ./usr/lib/rpm/pkgconfigdeps.sh -rwxr-xr-x 1 root wheel 433 Nov 6 2012 ./usr/lib/rpm/pythondeps.sh -rwxr-xr-x 1 root wheel 8161 Nov 6 2012 ./usr/lib/rpm/pythoneggs.py drwxr-xr-x 2 root wheel 0 Nov 6 2012 ./usr/lib/rpm/qf -rw-r--r-- 1 root wheel 664 Nov 6 2012 ./usr/lib/rpm/qf/deb_Packages -rw-r--r-- 1 root wheel 712 Nov 6 2012 ./usr/lib/rpm/qf/deb_Sources -rw-r--r-- 1 root wheel 421 Nov 6 2012 ./usr/lib/rpm/qf/deb_control -rw-r--r-- 1 root wheel 47 Nov 6 2012 ./usr/lib/rpm/qf/deb_md5sums -rw-r--r-- 1 root wheel 81 Nov 6 2012 ./usr/lib/rpm/qf/deb_postinst -rw-r--r-- 1 root wheel 81 Nov 6 2012 ./usr/lib/rpm/qf/deb_postrm -rw-r--r-- 1 root wheel 77 Nov 6 2012 ./usr/lib/rpm/qf/deb_preinst -rw-r--r-- 1 root wheel 77 Nov 6 2012 ./usr/lib/rpm/qf/deb_prerm -rw-r--r-- 1 root wheel 253 Nov 6 2012 ./usr/lib/rpm/qf/nix_meta -rw-r--r-- 1 root wheel 1301 Nov 6 2012 ./usr/lib/rpm/qf/psq_pkgng_yaml -rw-r--r-- 1 root wheel 243 Nov 6 2012 ./usr/lib/rpm/qf/wdj_l10n_sqlite -rw-r--r-- 1 root wheel 82 Nov 6 2012 ./usr/lib/rpm/qf/wdj_srpm -rw-r--r-- 1 root wheel 623 Nov 6 2012 ./usr/lib/rpm/qf/wdj_srpm_mongo -rw-r--r-- 1 root wheel 303 Nov 6 2012 ./usr/lib/rpm/qf/wnh_filelists_mongo -rw-r--r-- 1 root wheel 298 Nov 6 2012 ./usr/lib/rpm/qf/wnh_filelists_yaml -rw-r--r-- 1 root wheel 408 Nov 6 2012 ./usr/lib/rpm/qf/wnh_other_mongo -rw-r--r-- 1 root wheel 373 Nov 6 2012 ./usr/lib/rpm/qf/wnh_other_yaml -rw-r--r-- 1 root wheel 1373 Nov 6 2012 ./usr/lib/rpm/qf/wnh_primary_mongo -rw-r--r-- 1 root wheel 1369 Nov 6 2012 ./usr/lib/rpm/qf/wnh_primary_yaml -rw-r--r-- 1 root wheel 203 Nov 6 2012 ./usr/lib/rpm/qf/xiu_stdenv -rw-r--r-- 1 root wheel 177 Nov 6 2012 ./usr/lib/rpm/qf/yum_filelists_sqlite -rw-r--r-- 1 root wheel 277 Nov 6 2012 ./usr/lib/rpm/qf/yum_filelists_xml -rw-r--r-- 1 root wheel 317 Nov 6 2012 ./usr/lib/rpm/qf/yum_other_sqlite -rw-r--r-- 1 root wheel 387 Nov 6 2012 ./usr/lib/rpm/qf/yum_other_xml -rw-r--r-- 1 root wheel 1177 Nov 6 2012 ./usr/lib/rpm/qf/yum_primary_sqlite -rw-r--r-- 1 root wheel 1887 Nov 6 2012 ./usr/lib/rpm/qf/yum_primary_xml -rwxr-xr-x 1 root wheel 3257 Nov 6 2012 ./usr/lib/rpm/rubygems.rb -rwxr-xr-x 1 root wheel 3624 Nov 6 2012 ./usr/lib/rpm/symclash.py -rwxr-xr-x 1 root wheel 412 Nov 6 2012 ./usr/lib/rpm/symclash.sh -rwxr-xr-x 1 root wheel 2050 Nov 6 2012 ./usr/lib/rpm/u_pkg.sh -rwxr-xr-x 1 root wheel 98508 Nov 6 2012 ./usr/lib/rpm/vcheck -rwxr-xr-x 1 root wheel 9480 Nov 6 2012 ./usr/lib/rpm/vpkg-provides.sh -rwxr-xr-x 1 root wheel 2659 Nov 6 2012 ./usr/lib/rpm/vpkg-provides2.sh -rw-r--r-- 1 root wheel 2828 Nov 6 2012 ./usr/share/man/man8/rpmbuild.8.xz -rw-r--r-- 1 root wheel 612 Nov 6 2012 ./usr/share/man/man8/rpmdeps.8.xz -rwxr-xr-x 2 root wheel 0 Nov 6 2012 ./usr/lib/rpm/bin/luac -rwxr-xr-x 2 root wheel 113320 Nov 6 2012 ./usr/lib/rpm/bin/rpmluac link to ./usr/lib/rpm/bin/luac -rwxr-xr-x 2 root wheel 0 Nov 6 2012 ./usr/lib/rpm/bin/lua -rwxr-xr-x 2 root wheel 167064 Nov 6 2012 ./usr/lib/rpm/bin/rpmlua link to ./usr/lib/rpm/bin/lua 4365 blocks $