文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档> rpm文件解压方法

rpm文件解压方法

时间:2010-08-22  来源:sudoers

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


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载