当前位置: 首页 > 学习 > 电脑学习 > 操作系统 > Solaris > 应用技术 > 正文

Solaris 实现安装包的反安装

http://www.zk168.com.cn  招考学习网 2006-3-18 13:06:41
-----------------------------------------------------------[交流]-[打印]-[发送]-[收藏]--


但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

-----------------------------------------------------------[交流]-[打印]-[发送]-[收藏]--
最新入库:
 
·实质、过程及意义——阿多尔诺“否定的辩证法”探微
·从Ontology的译名之争看哲学术语的翻译原则
·论马克思主义哲学经典的解释——解释学方法及其在马克
·中国哲学当前的核心与周边问题
·和合学与21世纪文化价值和科技
·中国文化的和合精神与21世纪
·宗教之间理当相互宽容
·上半个世纪的自由主义
·殷周至春秋时期神人关系之演进
·大学之道:构建以“三纲八目”为核心的道德修养体系
相关内容:
 
·环保企业人力资源开发与管理的实证研究————巨龙公
·重油制气污水处理系统(A/O)技术改造
·英美CPA管理模式及其启示
·改造NERA微波公务信道为国产监控信道
·EAStudio让电子商务网站如虎添翼
·基于PB6和ORACLE8开发“劳动信息管理系统”
·巧解Pretty  Park 病毒一例
·CDMA在中国的应用以及向CDMA2000的过度中的问题研究
·SMA施工控制与现场监理
·浅谈改性沥青及SMA路面平整度的控制
网友点评:
 
会员名称:
密码:匿名 ·注册·忘记密码?
评论内容:
(最多300个字符)
  查看评论
友情提醒:
 1.库中的资料大都来自互联网、网友上传、各类书籍,在录入的过程中难免会出现错误,恳请网
 友来信指正!
 2.如果网友在本库中未能找到所需要的材料,请登陆到我们的论坛《招考学习网》版块!
 3.考友想加入招考学习网的编辑部,请发信到XueXiWang#Gmail.com(#改为@)附带个人简历
 4.如需转载请注明出处及作者,谢谢合作!
 5.如果您有更好的建议或意见请EMAIL:XueXiWang#Gmail.com (#改为@)
 6.凡标题中有注有“[NO]”字样均不含答案且答案整理中.
 7.如本库中转载文章涉及版权等问题,请相关网站或作者在两周内发邮件通知(EMAIL:  XueXiWang#Gmail.com (#改为@))我们,我们接到通知后立即删除该文章及链接!
你问我答 更多>>