Shell脚本解压rpm软件包
有时候需要从RPM包中提取文件,而又没有安装且不想安装rpm相关的库和程序,此时下面这个小小的绿色脚本可以帮你达成愿望。
注:
1.此脚本来源于Internet,具体位置不记得了,相对于源脚本做了一点点小的改动
2.系统需要安装cpio程序(一般的系统都带)
#!/bin/sh #************************************************************* #Author:Unknown,Modifiedbyjb51.net #Filename:rpmextract.sh #Description:extracrpmpackagewithoutinstall #rpmrelatedprogram #************************************************************* if[$#-lt1];then echo-e"anUsage:`basename$0`<rpm_pkg_file>n" exit1 fi pkg=$1 if[!-e"$pkg"];then echo-e"nERR:package$pkgdoesnotexist!n" exit1 fi ###checkifcpioexists CPIO_VER=`cpio--version2>/dev/null` if[-z"$CPIO_VER"];then echo-e"nERR:prerequisiteprogramcpiodoesnotfound!n" exit1 fi leadsize=96 o=`expr$leadsize+8` set`od-j$o-N8-tu1$pkg` il=`expr256*(256*(256*$2+$3)+$4)+$5` dl=`expr256*(256*(256*$6+$7)+$8)+$9` #echo"sigil:$ildl:$dl" sigsize=`expr8+16*$il+$dl` o=`expr$o+$sigsize+(8-($sigsize%8))%8+8` set`od-j$o-N8-tu1$pkg` il=`expr256*(256*(256*$2+$3)+$4)+$5` dl=`expr256*(256*(256*$6+$7)+$8)+$9` #echo"hdril:$ildl:$dl" hdrsize=`expr8+16*$il+$dl` o=`expr$o+$hdrsize` ddif=$pkgibs=$oskip=12>/dev/null|gunzip|cpio-idmuv||ddif=$pkgibs=$oskip=12>/dev/null|bzip2-d|cpio-idmuv
使用方法:rpmextract.sh<RPM文件>