电脑技术学习

Sun Solaris 安装包的反安装实现

dn001

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

  但Solaris在安装本身通用的PKG包时,会产生两个与安装包相关的文档/上录,分别在/var/sadm/pkg/下和/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.

标签: