zoukankan      html  css  js  c++  java
  • RHEL 6上安装Oracle 11G警告缺少pdksh包

    RHEL 6上安装Oracle 11G警告缺少pdksh包

    前言

    相信很多刚刚接触学习Oracle的人,在RHEL6上安装11.2.0.3 or 11.2.0.4这两个版本的时候,

    都遇到过先决条件检查的时候,警告缺少pdksh包的问题。

    如下边截图:

     

    对于这个问题,无论是个人自己的测试环境安装,或者是企业服务器上安装遇到,不外乎两种解决方法:

    1. 忽略该警告,继续下一步安装
    2. 网上下载单独该包的rpm包安装

    不过,对于第二种解决方法,存在一个问题。

    再用rpm -ivh安装pdksh包的时候,会报错和已安装的ksh包冲突,安装不了。

    很多人也选择卸载ksh包,安装pdksh。

    不过,ksh是Oracle官方文档指定要安装的包之一。

    在Oracle Linux 6, Red Hat Enterprise Linux 6 and Asianux Server 4,要求:

    binutils-2.20.51.0.2-5.11.el6.i686
    compat-libcap1-1.10-1.i686
    compat-libstdc++-33-3.2.3-69.el6.i686
    gcc-4.4.4-13.el6.i686
    gcc-c++-4.4.4-13.el6.i686
    glibc-2.12-1.7.el6.i686
    glibc-devel-2.12-1.7.el6.i686
    ksh
    libgcc-4.4.4-13.el6.i686
    libstdc++-4.4.4-13.el6.i686
    libstdc++-devel-4.4.4-13.el6.i686
    libaio-0.3.107-10.el6.i686
    libaio-devel-0.3.107-10.el6.i686
    make-3.81-19.el6.i686
    sysstat-9.0.4-11.el6.i686

    你卸载了官方指定要求的包,自己测试环境不说,企业环境肯定不允许这样。

    另外,不止图形化警告该包没有安装,在安装日志里边也可以看到有报错:

    [root@adg ~]# tail -37 /tmp/OraInstall2020-07-03_10-12-27PM/installActions2020-07-03_10-12-27PM.log 
    INFO: Package: pdksh-5.2.14: This is a prerequisite condition to test whether the package "pdksh-5.2.14" is available on the system.
    INFO: Severity:IGNORABLE
    INFO: OverallStatus:VERIFICATION_FAILED
    INFO: -----------------------------------------------
    INFO: Verification Result for Node:adg
    INFO: Expected Value:pdksh-5.2.14
    INFO: Actual Value:missing
    INFO: Error Message:PRVF-7532 : Package "pdksh" is missing on node "adg"
    INFO: Cause: A required package is either not installed or, if the package is a kernel module, is not loaded on the specified node.
    INFO: Action: Ensure that the required package is installed and available.
    

    原因

    先说说前边提到的两种方法是否可取。

    第二种肯定不可取,但是第一种是可行,企业大多数都这样做。

    但是为什么忽略是可行的,有没有官方石锤的说法。

    很遗憾,我在metalink上搜不到可以忽略的文档说明,百度也没看到让人信服的说法。

    其实真正的原因是,OUI(安装程序)会执行下列命令

    /bin/rpm -q --qf %{version} redhat-release

    来识别OS版本信息,但是在RHEL6中,软件包redhat-release已被redhat-release-server-6Server取代。

    什么意思,在RHEL5执行情况如下:

    [root@oracle ~]# /bin/rpm -q --qf %{version} redhat-release
    5Server
    [root@oracle ~]# 

    在RHEL6中执行情况如下:

    [oracle@adg database]$ /bin/rpm -q --qf %{version} redhat-release
    package redhat-release is not installed

    其实正确的话在RHEL6应该是执行:

    [oracle@adg database]$ /bin/rpm -q --qf %{version} redhat-release-server-6Server
    6Server

    才是对的。

    由于无法确认操作系统版本信息,这使OUI认为该服务器不是RHEL服务器。

    由于OUI无法识别服务器的类型,因此OUI会执行默认(OEL4)前提条件检查。

    这个是Oracle unpublished(未发布的) bug 13981169。

    解决

    除了直接忽略,Oracle提供另外一种方法,(强迫症患者福利)

    1.解压好安装包后,进到这个目录/database/stage/cvu/cv/admin

    [oracle@adg admin]$ ls -l
    total 4
    -rwxr-xr-x. 1 oracle oinstall 1011 Aug 27  2013 cvu_config

    2.备份cvu_config

    [oracle@adg admin]$ ls -l
    total 8
    -rwxr-xr-x. 1 oracle oinstall 1011 Aug 27  2013 cvu_config
    -rwxr-xr-x. 1 oracle oinstall 1011 Jul  3 23:11 cvu_config.bak

    3.编辑cvu_config,更改

    CV_ASSUME_DISTID=OEL4

    CV_ASSUME_DISTID=OEL6

    并保存。

    4.重新开始安装

    至此,不在有该警告。

    参考文档:Installing 11.2.0.3 Or 11.2.0.4 (32-bit (x86) or 64-bit (x86-64) ) On RHEL6 Reports That Packages "elfutils-libelf-devel-0.97" And "pdksh-5.2.14" Are Missing (PRVF-7532) (Doc ID 1454982.1)

  • 相关阅读:
    游戏中的View开发
    下载更新包,并且在任务栏提示进度.
    调用android非unbind的服务中的方法(不使用bindService启动的服务)
    判断android系统中Service是否在运行的方法
    如何从Activity中调用Service中的方法
    android官方文档---应用程序基础---服务的理解(app Component---services)
    怎么通过文件名的String,找到对应的资源ID
    疯狂Java之JDBC 笔记
    android应用将json数据打包在本地,进行读取的代码
    STL 堆的使用
  • 原文地址:https://www.cnblogs.com/PiscesCanon/p/13232942.html
Copyright © 2011-2022 走看看