今天,在安装myodbc库的时候,下载了rpm格式的包,安装时发现缺少一些依赖包,很烦人;于是想如果能不用安装这些依赖就能解压出rpm包中的文件就好了;在网上搜索了下,找到一个脚本,记录下来,供有需要者使用
#!/bin/bash
if [ $ # -lt 1 ] ; then
echo - e "/a/nUsage: `basename $0` /n"
exit 1
fi
pkg= $ 1
if [ ! - e "$pkg" ] ; then
echo - e "/nERR: package $pkg does not exist ! /n"
exit 1
fi
### check if cpio exists
CPIO_VER= ` cpio - - version 2> / dev/ null`
if [ - z "$CPIO_VER" ] ; then
echo - e "/nERR: prerequisite program cpio does not found ! /n"
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 `
dd if = $ pkg ibs= $ o skip= 1 2> / dev/ null | gunzip | cpio - idmuv | | dd if = $ pkg ibs= $ o skip= 1 2> / dev/ null | bzip2 - d | cpio - idmuv