rpm文件解壓方法

 

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章