有時(shí)候需要從RPM包中提取文件,而又沒(méi)有安裝且不想安裝 rpm相關(guān)的庫(kù)和程序,此時(shí)下面這個(gè)小小的綠色腳本可以幫你達(dá)成愿望。
注:
1. 此腳本來(lái)源于 Internet,具體位置不記得了,相對(duì)于源腳本做了一點(diǎn)點(diǎn)小的改動(dòng)
2. 系統(tǒng)需要安裝cpio程序(一般的系統(tǒng)都帶)
#!/bin/sh #************************************************************* # Author: Unknown, Modified by jb51.net # Filename: rpmextract.sh # Description: extrac rpm package without install # rpm related program #************************************************************* if [ $# -lt 1 ] ; then echo -e "anUsage: `basename $0` rpm_pkg_file> 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
使用方法:rpmextract.sh RPM文件>
標(biāo)簽:南充 延邊 雅安 青島 朝陽(yáng) 西藏 隨州 通遼
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Shell腳本解壓rpm軟件包》,本文關(guān)鍵詞 Shell,腳本,解壓,rpm,軟件包,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。