Linux下oracle11g安装所需要软件包的检测与安装

2017-04-23 13:11

Linux下oracle11g安装所需要软件包的检测与安装

1 首先在执行脚本之前,你需要把所有需要的包提出出来,然后放到一个名为patch的文件夹下,这个文件夹要和脚本程序在同一个目录下就可以 

2 把下面的脚本内容copy到linux下,新建一个脚本文件,然后执行就可以了, 

脚本的内容如下: 

#!/bin/sh 
count=0 
arr=( binutils-2* compat-libstdc++-33* elfutils-libelf-0.* elfutils-libelf-devel-0.* elfutils-libelf-devel-static-0.* gcc-4.* gcc-c++-4* glibc-2.* glibc-common-2.* glibc-devel-2.* glibc-headers-2* kernel-headers-2.* ksh-* libaio-0.* libaio-devel-0.* libgcc-4.* libgomp-4.* libstdc++-4.* libstdc++-devel-* make-* numactl-devel-* sysstat-* ) 
len=${#arr[@]} 
for((i=0;i<len;i++)); 
do 
        char=${arr[$i]} 
        rpm -qa | grep "^$char" 
        if [ $? != 0 ] ; then 
                error[$count]=${arr[$i]} 
                count=$(($count+1)) 
                echo "+++++++++++++++the ${arr[$i]}^is not installed++++++++++++++++++" 
        fi 
done 
if [ $count -lt "0" ];then 
        echo "You have $count patchs are not installed." 
        echo "the not installed patch is:" 
len1=${#error[@]} 
        for((ii=0;ii<len1;ii++)); 
        do 
                echo "${error[$ii]}^" 
        done 
        echo -e  "Are you sure to install the patch[yes or no]:\c" 
        read select 
        if [ $select == "yes" ]; then 
                for((is=0;is<len1;is++)); 
                do 
                        var=${error[$is]} 
                        rpm -ivh ./patch/$var.rpm 
                done 
        fi 
else 
        echo "++++++++++++++++++++++CHECK PASS!+++++++++++++++++++++++++++" 
fi 
count=0 

最后安装好包后,可以在执行下这个脚本的内容,然后会显示CHECK PASS,完成检测及安装程序包的工作