今天,在安裝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