Chinaunix首页 | 论坛 | 博客
  • 博客访问: 410319
  • 博文数量: 47
  • 博客积分: 1488
  • 博客等级: 上尉
  • 技术积分: 729
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-15 11:35
文章分类

全部博文(47)

文章存档

2012年(4)

2011年(22)

2010年(21)

分类: LINUX

2010-08-22 22:40:20

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


阅读(2775) | 评论(1) | 转发(0) |
0

上一篇:ODBC 基本应用

下一篇:Shell脚本调试技术

给主人留下些什么吧!~~

chinaunix网友2011-01-02 19:48:19

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com