rpm文件解压方法

本文提供了一个bash脚本,用于解压rpm包并提取其中的内容,而无需实际安装该包及其依赖项。此方法适用于那些希望直接获取rpm包内文件的用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值