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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值