分享
 
 
 

Solaris 实现安装包的反安装

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

工作中,有时需要移植一些已经安装过的Solaris包,或者对已经安装后的包进行修改,但一时又无法找到原来的安装包。系统升级时,有时也常常涉及到对原来系统的备份问题,这时需要一些能够对原来的安装包进行备份,又能够在新系统上进行安装的工具。Solaris本身并不提供直接的工具用于包的移植。

但Solaris在安装本身通用的PKG包时,会产生两个与安装包相关的文档/上录,分别在/var/sadm/pkg/<pkgname>下和/var/sadm/install/contents中,通过对这两个文档进行解析,可以实现对Solaris包的反安装,这在实现系统升级时尤其有用。

以下脚本会在当前的运行目录下产生压缩的系统安装包,Copy/Paste本脚本到Solaris机上,运行后输入需要反安装的包名即可。欢迎大家测试。

#!/bin/ksh

##########################################################

#

# Copyright (c) 2002 Chinaunix.net -- Solaris

#

# Module Description ::

# Script to create Sun packages from existing installation

#

##########################################################

# [Global Parameters]

#===============================================

MAIN_DIR=`pwd`

PRO_DIR=$MAIN_DIR/process

PKG_DIR=$MAIN_DIR/package

SYS_DIR=/var/sadm/pkg

CNT_FILE=/var/sadm/install/contents

ID=`/usr/bin/id | awk -F= '{print $2}' | awk -F\( '{print $1}'`

VER=sol`uname -r | cut -d. -f2,2`

GREP=/bin/grep

# awk can not handle long line with many fileds.

# In Solaris, use 'nawk' or 'gawk' instead.

AWK=/bin/nawk

GZIP=/bin/gzip

MKDIR=/bin/mkdir

CHMOD=/bin/chmod

CHOWN=/bin/chown

CP=/bin/cp

MV=/bin/mv

PKGMK=/bin/pkgmk

PKGTRANS=/bin/pkgtrans

# [Functions]

#==================================================================

function mk_dir

{

$MKDIR -p $PRO_DIR/$3

$CHMOD $4 $PRO_DIR/$3

$CHOWN $5:$6 $PRO_DIR/$3

}

function cp_file

{

$CP -p $3 $PRO_DIR/$3

$CHMOD $4 $PRO_DIR/$3

$CHOWN $5:$6 $PRO_DIR/$3

}

# [Main]

#==================================================================

if [ ${ID} != 0 ]

then

echo ""

echo "Only Root User allow to run this script. Exit...."

sleep 1

echo ""

exit 1

fi

echo ""

echo "Please enter package name you want to create, then press Enter: "

echo "Enter Package name: \c"

read pkgname

PKG_NAME=$pkgname

if [ ! -d $SYS_DIR/$PKG_NAME ]; then

echo ""

echo "This Package doesn't exist!!! Please check the name and try again!"

echo ""

exit 1

fi

if [ ! -d $PRO_DIR ]; then

$MKDIR $PRO_DIR

fi

if [ ! -d $PKG_DIR ]; then

$MKDIR $PKG_DIR

fi

# Producing part of Prototype file

$GREP $PKG_NAME $CNT_FILE | $GREP -v ^#.* > $PRO_DIR/cnt_pkg

$AWK '{print $2,$3,$1,$4,$5,$6}' $PRO_DIR/cnt_pkg > $PRO_DIR/Prototmp

$GREP ^d $PRO_DIR/Prototmp > $PRO_DIR/Protodir

$GREP ^f $PRO_DIR/Prototmp >> $PRO_DIR/Protofile

rm -f $PRO_DIR/Prototmp

rm -f $PRO_DIR/cnt_pkg

# Producing pkginfo file

cp $SYS_DIR/$PKG_NAME/pkginfo $PRO_DIR

# Making directory with permission

i=0

while IFS=' ' read line

do

t[$i]=$line

((i=i+1))

mk_dir $line

done < $PRO_DIR/Protodir

# Copying file to Spool directory

i=0

while IFS=' ' read line

do

t[$i]=$line

((i=i+1))

cp_file $line

done < $PRO_DIR/Protofile

# Producing Prototype file

cat $PRO_DIR/Protodir > $PRO_DIR/Prototype

cat $PRO_DIR/Protofile >> $PRO_DIR/Prototype

(echo "i pkginfo"; cat $PRO_DIR/Prototype ) > $PRO_DIR/Prototmp

mv $PRO_DIR/Prototmp $PRO_DIR/Prototype

rm -f $PRO_DIR/Protodir

rm -f $PRO_DIR/Protofile

# Now let's make the package

$PKGMK -o -r $PRO_DIR -d $PRO_DIR -f $PRO_DIR/Prototype

$PKGTRANS -s $PRO_DIR $PKG_DIR/$PKG_NAME-$VER-pkg $PKG_NAME

$GZIP -f $PKG_DIR/$PKG_NAME-$VER-pkg

rm -rf $PRO_DIR

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有