RHEL 6 和 CentOS 6 中缺少 pdksh?

Dat*_*ase 8 yum rhel ksh centos

该包pdksh时,我试图通过安装它不会在RHEL 6或CentOS 6的存在yum

所以我的问题:

  1. 为什么它在默认存储库中不再可用?它在 5.x 版中可用。
  2. 有替换壳吗?
  3. 依赖于 的程序pdksh呢?他们可以使用替换外壳吗?

我的解决方法是使用版本 5 中的包,我觉得这不是正确的解决方案,我应该比解决方法更好地理解它。

我主要关心的是 Oracle 数据库。它要求pdksh,那么使用除 之外的替换外壳会有问题pdksh吗?

Dav*_*vid 11

根据这篇文章“ Oracle Database 11g Release 2 (11.2) Installation On Oracle Linux 6 ”:

“pdksh”包的失败可以忽略,因为我们在它的位置安装了“ksh”包

在我相当标准的 OEL 6.3 机器上,ksh 已经作为构建的一部分安装,但您可能需要执行 asudo yum install ksh来安装它。


我们的 DBA 还发现了这篇可能有用的文章:

在 RHEL6 上安装“11.2.0.3 32-bit (x86)”或“64-bit (x86-64)”会报告软件包elfutils-libelf-devel-0.97pdksh-5.2.14丢失。

适用于

  • Oracle Server - 企业版 - 版本 11.2.0.3 到 11.2.0.3 [版本 11.2]
  • Oracle 通用安装程序 - 版本 11.2.0.3 到 11.2.0.3 [版本 11.2]
  • Oracle Server - 标准版 - 版本 11.2.0.3 到 11.2.0.3 [版本 11.2]
  • Linux x86
  • Linux x86-64

症状

安装时

  • RHEL6 x86 服务器上的 11.2.0.3 32 位 (x86) 数据库软件
  • RHEL6 x86-64 服务器上的 11.2.0.3 64 位 (x86-64) 数据库软件

Oracle通用安装程序(OUI)的报告,包elfultils-libelf-devel-0.97pdksh-5.2.14丢失。

installActions.log以下输出中可以观察到:

INFO: INFO: *********************************************
INFO: INFO: Package: elfutils-libelf-devel-0.97: This is a prerequisite condition to test whether the package "elfutils-libelf-devel-0.97" is available on the system.
INFO: INFO: Severity:IGNORABLE
INFO: INFO: OverallStatus:VERIFICATION_FAILED
INFO: INFO: -----------------------------------------------INFO: INFO: Verification Result for Node:nodename
INFO: INFO: Expected Value:elfutils-libelf-devel-0.97
INFO: INFO: Actual Value:missing
INFO: INFO: Error Message:PRVF-7532 : Package "elfutils-libelf-devel" is missing on node "nodename"
INFO: 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: INFO: Action: Ensure that the required package is installed and available.
INFO: INFO: -----------------------------------------------:
INFO: INFO: *********************************************
INFO: 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: INFO: Severity:IGNORABLE
INFO: INFO: OverallStatus:VERIFICATION_FAILED
INFO: INFO: -----------------------------------------------INFO: INFO: Verification Result for Node:nodename
INFO: INFO: Expected Value:pdksh-5.2.14
INFO: INFO: Actual Value:missing
INFO: INFO: Error Message:PRVF-7532 : Package "pdksh" is missing on node "nodename"
INFO: 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: INFO: Action: Ensure that the required package is installed and available.
INFO: INFO: -----------------------------------------------:    
Run Code Online (Sandbox Code Playgroud)

原因

OUI 执行以下命令:

/bin/rpm -q --qf %{version} redhat-release
Run Code Online (Sandbox Code Playgroud)

不返回任何输出(因为在 RHEL6 中,redhat-release 包已被 redhat-release-server-6Server 替换)。

这会导致 OUI 认为该服务器不是 RHEL 服务器。

由于 OUI 无法识别它是什么类型的服务器,OUI 执行默认 (OEL4) 先决条件检查。

此问题已在 Oracle 开发中记录为未发布的错误 13981169。

除此之外,没有定义 RHEL6 先决条件检查

<path>/database/stage/cvu/cvu_prereq.xml
Run Code Online (Sandbox Code Playgroud)

在 11.2.0.3 媒体中。

解决方案

11.2.0.3 64 位 (x86-64) 的解决方案

如果您已从 My Oracle Support (MOS) 下载 11.2.0.3 媒体并将软件解压缩到<path>/database,请执行以下操作:

  1. 将目录更改为 <path>/database/stage/cvu/cv/admin
  2. 备份 cvu_config cp cvu_config backup_cvu_config
  3. 编辑 cvu_config 并将以下行更改CV_ASSUME_DISTID=OEL4CV_ASSUME_DISTID=OEL6
  4. 保存更新的cvu_config文件
  5. 使用以下命令安装 11.2.0.3 软件:
    1. <path>/database/runInstaller
    2. cd <path>/database
    3. ./runInstaller

OUI 现在应该执行 OEL6 先决条件检查(与 RHEL6 先决条件检查相同)并且不再报告软件包elfutils-libelf-devel-0.97pdksh-5.2.14丢失

笔记

如果您收到了 DVD 上的 11.2.0.3 媒体,则需要将媒体从 DVD 复制到 RHEL6 服务器上的磁盘(以便您可以执行上述步骤)

11.2.0.3 32 位 (x86) 的解决方案

由于cvu_prereq.xml11.2.0.3 32 位 (x86)的文件未引用 RHEL6 或 OEL6,因此无法使用上述解决方法。

手动验证是否满足所有要求后,选择安装程序中的全部忽略选项并继续安装。


bsd*_*bsd 7

我的印象是 pdksh 不符合 POSIX 标准,随着开源 AT&T KSH 的发布,从 pdksh 到ksh发生了重大变化。只是我的 0.02 美元

AT&T ksh 由 Eclipse Public License 1.0 (EPL-1.0) 许可。

  • POSIX 合规性在 pdksh 中缺少什么?@Data-Base pdksh 与 AT&amp;T ksh 的一个主要偏差是管道中的最后一个命令仅在 AT&amp;T ksh 中在父 shell 中执行。除此之外,pdksh 与 AT&amp;T ksh88 非常接近,并且 ksh93 向上兼容 ksh88,除非在非常罕见的情况下。当然,永远不能保证您的脚本不依赖于任何此类不寻常的情况。 (3认同)
  • 你混淆了开源和公共领域,但无论如何,你是对的 pdksh 是一个相当糟糕的重新实现,真正的 ksh93 免费提供是一个更好的选择。 (2认同)
  • 不幸的是,这取决于脚本。您可以安装 ksh 并创建一个 pdksh 符号链接,以便 #! 她的刘海不会坏,但一个脚本一个脚本总是有可能会破坏某些“功能”或其他功能。试试看,准备好恢复 pdksh (2认同)
  • 在 RHEL5 软件包中,它说:`Pdksh 自 1998 年以来就不再维护,并且已被 ksh 软件包淘汰。` (2认同)