亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2522 | 回復: 4
打印 上一主題 下一主題

[原創(chuàng)]如何實現Solaris安裝包的反安裝? [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2004-03-04 11:33 |只看該作者 |倒序瀏覽
工作中,有時需要移植一些已經安裝過的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 $56 $PRO_DIR/$3
}

function cp_file
{
$CP -p $3 $PRO_DIR/$3
$CHMOD $4 $PRO_DIR/$3
$CHOWN $56 $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 "lease 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

論壇徽章:
0
2 [報告]
發(fā)表于 2004-03-05 11:09 |只看該作者

[原創(chuàng)]如何實現Solaris安裝包的反安裝?

Solaris 8
測試通過

論壇徽章:
0
3 [報告]
發(fā)表于 2004-03-05 17:04 |只看該作者

[原創(chuàng)]如何實現Solaris安裝包的反安裝?

大家多發(fā)一些這樣的貼子吧,我喜歡!呵呵!

論壇徽章:
0
4 [報告]
發(fā)表于 2004-03-05 20:19 |只看該作者

[原創(chuàng)]如何實現Solaris安裝包的反安裝?

支持原創(chuàng)。

論壇徽章:
0
5 [報告]
發(fā)表于 2004-03-05 20:45 |只看該作者

[原創(chuàng)]如何實現Solaris安裝包的反安裝?

雖然看不懂,但還是給鼓鼓掌!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯網協會會員  聯系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP