RHEL 6およびCentOS 6にpdkshがありませんか?


8

pdksh介してインストールしようとすると、RHEL 6またはCentOS 6にパッケージが存在しませんyum

だから私の質問:

  1. デフォルトのリポジトリで使用できなくなったのはなぜですか?バージョン5.xで使用できます。
  2. 代替シェルはありますか?
  3. 依存するプログラムはどうpdkshですか?交換用シェルを使用できますか?

私の回避策は、バージョン5のパッケージを使用することでしたが、これは適切な解決策ではないと感じ、回避策よりもよく理解する必要があります。

私の懸念は主にOracleデータベースに関するものです。それは求めるpdkshので、それ以外の置換シェルを使用することは問題になりpdkshますか?


2
たぶんmksh、あなたも幸せにすることができますか?-「パブリックドメインKornシェル(pdksh)の後継」
sr_ 2012年

こんにちは、パッケージはまったく問題ありません。私の質問は技術的な側面に関連しています!mkshをインストールした場合、アプリケーションはpdkshを要求し、代わりにmkshがある場合でも、アプリケーションはpdkshに依存していますか?
データベース

回答:


7

私はpdkshがPOSIXに準拠していないという印象を受けました。オープンソースのAT&T KSHのリリースに伴い、pdkshからkshへの大幅な移行がありました。たったの$ 0.02

AT&T kshはEclipse Public License 1.0(EPL-1.0)によってライセンスされています。


2
あなたはオープンソースとパブリックドメインを混同していますが、とにかく、あなたは正しいですpdkshはかなり再実装が不十分であり、自由に利用できる実際のksh93ははるかに良い選択です。
jlliagre 2012年

オープンソース、パブリックドメイン、無料、ライセンスa、b、cはい、私は混乱しており、前者のいずれかを同じ意味で頻繁に使用しています;)
bsd

2
残念ながら、それはスクリプトに依存します。kshをインストールしてpdkshシンボリックリンクを作成できるので、#!彼女は前髪は壊れませんが、台本ごとに「機能」などが壊れる可能性は常にあります。試してみて、pdkshを復元する準備をしてください
bsd

3
POSIX準拠のpdkshには何が欠けていますか?@ Data-Base AT&T kshからのpdkshの1つの大きな違いは、パイプラインの最後のコマンドがAT&T kshの親シェルでのみ実行されることです。それとは別に、pdkshはAT&T ksh88にかなり近く、ksh93は非常にまれなケースを除いてksh88と上位互換性があります。もちろん、スクリプトがそのような異常なケースに依存していないことは保証されていません。
Gilles「SO-悪をやめなさい」

1
RHEL5パッケージでは、それは言う:Pdksh is unmaintained since 1998 and is obsoleted by ksh package.
jsbillings

11

この記事によると、「Oracle Linux 11へのOracle Database 11gリリース2(11.2)のインストール」:

代わりに「ksh」パッケージをインストールしたため、「pdksh」パッケージの失敗は無視できます

私のかなり標準的なOEL 6.3マシンでは、kshはビルドの一部としてすでにインストールされていますが、sudo yum install kshインストールするためにa を実行する必要がある場合があります。


私たちのDBAもこの記事を見つけました。

インストール「11.2.0.3 32ビット(x86)」または「64ビット(x86-64では)」RHEL6にそのパッケージを報告elfutils-libelf-devel-0.97し、pdksh-5.2.14不足しています。

に適用されます

  • Oracle Server-Enterprise Edition-バージョン11.2.0.3から11.2.0.3 [リリース11.2]
  • Oracle Universal Installer-バージョン11.2.0.3から11.2.0.3 [リリース11.2]
  • Oracle Server-Standard Edition-バージョン11.2.0.3から11.2.0.3 [リリース11.2]
  • Linux x86
  • Linux x86-64

症状

インストール中

  • RHEL6 x86サーバー上の11.2.0.3 32ビット(x86)データベースソフトウェア
  • 11.2.0.3 RHEL6 x86-64サーバー上の64ビット(x86-64)データベースソフトウェア

Oracle Universal Installerの(OUI)は、そのパッケージを報告elfultils-libelf-devel-0.97し、pdksh-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: -----------------------------------------------:    

原因

OUIは次のコマンドを実行します。

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

出力は返されません(RHEL6では、パッケージredhat-releaseがredhat-release-server-6Serverに置き換えられたため)。

これにより、OUIはサーバーがRHELサーバーではないと認識します。

OUIはサーバーのタイプを識別できないため、OUIはデフォルト(OEL4)の前提条件チェックを実行します。

この問題は、Oracle Developmentに未公開のバグ13981169として記録されています。

これに加えて、RHEL6前提条件チェックは定義されていません

<path>/database/stage/cvu/cvu_prereq.xml

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.97を報告しpdksh-5.2.14て欠落することはなくなりました。

注意

11.2.0.3メディアをDVDで受け取った場合は、メディアをDVDからRHEL6サーバーのディスクにコピーする必要があります(上記の手順を実行できるようにするため)。

11.2.0.3 32ビット(x86)のソリューション

cvu_prereq.xml11.2.0.3 32ビット(x86)のファイルはRHEL6またはOEL6を参照しないため、上記の回避策は使用できません。

すべての要件が満たされていることを手動で確認した後、インストーラーで[ すべて無視 ]オプションを選択し、インストールを続行します。


RHEL 6.7 11.2.0.2.0でも動作します。ありがとうございました!
Michael-O

おい、問題の著作権を取得することができます、oracleのサポートドキュメントを共有しないでください。
jcho360 2018

1

私の理解では、RHEL 6より前のRed Hatは、ライセンスが原因でAT&T KornShellを警戒していました。そのため、完全性の低い実装であるpdkshが含まれていました。David Kornは、kshができるだけ多くの場所で受け入れられるように最善を尽くしていたと思います。また、ライセンスが明確化または変更されました。この引用はKornShellの Webサイトから引用したものです。「AT&TはKornShellをオープンソースとしてリリースしました」。

明らかに、Red HatはRHEL 6がリリースされるまでにライセンスに満足していたため、「本物」が含まれていました。

編集:実際にはWikipediaページで説明されています(もちろん)-履歴の下の最初の段落を参照してください。


0

私は古いmandrake 2007.1 rpmパッケージのパッチを作成し、新しいSRPMパッケージを作成しました。これは、新しいgccバージョンを備えた最新のLinuxディストリビューションで問題なくコンパイルできるはずです。

ftp://ftp.crashrecovery.org/pub/linux/pdksh/RPMS/mdv2011/ ftp://ftp.crashrecovery.org/pub/linux/pdksh/RPMS/mdv2011/pdksh-5.2.14-21-mdv2011。 0.x86_64.rpm ftp://ftp.crashrecovery.org/pub/linux/pdksh/RPMS/mdv2011/pdksh-5.2.14-21.src.rpm ftp://ftp.crashrecovery.org/pub/linux/ pdksh / RPMS / mdv2011 / ksh.pdf

2つの調整が行われました。siglist.sh内:sort + 2n + 0nがsort -k3n -k1nに置き換えられ、複数のcファイル内でshprintf(newline); shprintf( "%s"、newline);になります。-Werror = format-securityエラーの発生を防ぐため。

[vax-linux:root]:(~/rpmbuild/BUILD/pdksh-5.2.14)# make check
./tests/th-sh ./tests/th -s ./tests -p ./ksh -C pdksh,sh,ksh,posix,posix-upu 
pass lineno.t:lineno-stdin
pass lineno.t:lineno-inc
pass lineno.t:lineno-func
pass lineno.t:lineno-unset
pass lineno.t:lineno-unset-use
pass alias.t:alias-1
pass alias.t:alias-2
pass alias.t:alias-3
pass alias.t:alias-4
pass alias.t:alias-5
pass alias.t:alias-6
pass alias.t:alias-7
pass alias.t:alias-8
pass glob.t:glob-bad-1
pass glob.t:glob-range-1
pass glob.t:glob-range-2
pass glob.t:glob-range-3
pass glob.t:glob-range-4
pass glob.t:glob-range-5
pass eglob.t:eglob-bad-1
pass eglob.t:eglob-bad-2
pass eglob.t:eglob-infinite-plus
pass eglob.t:eglob-subst-1
pass eglob.t:eglob-nomatch-1
pass eglob.t:eglob-match-1
pass eglob.t:eglob-case-1
pass eglob.t:eglob-case-2
pass eglob.t:eglob-trim-1
pass eglob.t:eglob-trim-2
pass arith.t:arith-lazy-1
pass arith.t:arith-lazy-2
FAIL arith.t:arith-ternary-prec-1
pass arith.t:arith-ternary-prec-2
pass arith.t:arith-div-assoc-1
pass arith.t:arith-assop-assoc-1
pass history.t:history-basic
pass history.t:history-e-minus-1
pass history.t:history-e-minus-2
pass history.t:history-e-minus-3
pass history.t:history-e-minus-4
pass history.t:history-e-minus-5
pass history.t:history-list-1
pass history.t:history-list-2
pass history.t:history-list-3
pass history.t:history-list-4
pass history.t:history-list-5
pass history.t:history-list-6
pass history.t:history-list-7
pass history.t:history-list-r-1
pass history.t:history-list-r-2
pass history.t:history-list-r-3
pass history.t:history-subst-1
pass history.t:history-subst-2
pass history.t:history-subst-3
pass history.t:history-subst-4
pass history.t:history-subst-5
pass ifs.t:IFS-space-1
pass ifs.t:IFS-colon-1
pass ifs.t:IFS-null-1
pass ifs.t:IFS-space-colon-1
pass ifs.t:IFS-space-colon-2
fail ifs.t:IFS-space-colon-3 (as expected)
pass ifs.t:IFS-space-colon-4
pass ifs.t:IFS-space-colon-5
pass ifs.t:IFS-subst-1
pass brkcont.t:break-1
pass brkcont.t:break-2
pass brkcont.t:break-3
pass brkcont.t:break-4
pass brkcont.t:break-5
pass brkcont.t:continue-1
pass brkcont.t:continue-2
pass brkcont.t:continue-3
pass brkcont.t:continue-4
pass brkcont.t:continue-5
pass syntax.t:syntax-1
pass read.t:read-IFS-1
pass read.t:read-ksh-1
pass heredoc.t:heredoc-1
pass heredoc.t:heredoc-2
pass heredoc.t:heredoc-3
pass heredoc.t:heredoc-4
pass heredoc.t:heredoc-5
pass heredoc.t:heredoc-6
pass heredoc.t:heredoc-7
pass heredoc.t:heredoc-8
pass heredoc.t:heredoc-tmpfile-1
pass heredoc.t:heredoc-tmpfile-2
pass heredoc.t:heredoc-tmpfile-3
pass heredoc.t:heredoc-tmpfile-4
pass heredoc.t:heredoc-tmpfile-5
pass heredoc.t:heredoc-tmpfile-6
pass heredoc.t:heredoc-tmpfile-7
pass heredoc.t:heredoc-tmpfile-8
pass bksl-nl.t:bksl-nl-ign-1
pass bksl-nl.t:bksl-nl-ign-2
pass bksl-nl.t:bksl-nl-ign-3
pass bksl-nl.t:blsk-nl-ign-4
pass bksl-nl.t:blsk-nl-ign-5
pass bksl-nl.t:bksl-nl-1
pass bksl-nl.t:bksl-nl-2
pass bksl-nl.t:bksl-nl-3
pass bksl-nl.t:bksl-nl-4
pass bksl-nl.t:bksl-nl-5
pass bksl-nl.t:bksl-nl-6
pass bksl-nl.t:bksl-nl-7
pass bksl-nl.t:bksl-nl-8
pass bksl-nl.t:blsk-nl-9
pass bksl-nl.t:blsk-nl-10
pass bksl-nl.t:blsk-nl-ksh-1
pass bksl-nl.t:blsk-nl-ksh-2
pass regress.t:regression-1
pass regress.t:regression-2
pass regress.t:regression-6
pass regress.t:regression-9
FAIL regress.t:regression-10
pass regress.t:regression-11
pass regress.t:regression-12
pass regress.t:regression-13
pass regress.t:regression-14
pass regress.t:regression-15
pass regress.t:regression-16
pass regress.t:regression-17
pass regress.t:regression-19
pass regress.t:regression-21
pass regress.t:regression-22
pass regress.t:regression-23
pass regress.t:regression-25
pass regress.t:regression-26
pass regress.t:regression-27
pass regress.t:regression-28
pass regress.t:regression-29
pass regress.t:regression-30
pass regress.t:regression-31
pass regress.t:regression-32
pass regress.t:regression-33
pass regress.t:regression-35
pass regress.t:regression-36
pass regress.t:regression-37
pass regress.t:regression-38
fail regress.t:regression-39 (as expected)
pass regress.t:regression-40
pass regress.t:regression-41
pass regress.t:regression-42
pass regress.t:regression-43
pass regress.t:regression-44
pass regress.t:regression-45
pass regress.t:regression-46
pass regress.t:regression-47
pass regress.t:regression-48
pass regress.t:regression-49
pass regress.t:regression-50
pass regress.t:regression-51
pass regress.t:regression-52
pass regress.t:regression-53
pass regress.t:regression-54
pass regress.t:regression-55
pass regress.t:regression-56
pass regress.t:regression-57
pass regress.t:regression-58
pass regress.t:regression-59
pass regress.t:regression-60
pass regress.t:regression-61
pass regress.t:regression-62
pass version.t:version-1
pass unclass1.t:xxx-quoted-newline-1
pass unclass1.t:xxx-quoted-newline-2
pass unclass1.t:xxx-quoted-newline-3
pass unclass1.t:xxx-multi-assignment-cmd
pass unclass1.t:xxx-exec-environment-1
pass unclass1.t:xxx-what-do-you-call-this-1
pass unclass1.t:xxx-prefix-strip-1
pass unclass1.t:xxx-prefix-strip-2
pass unclass1.t:xxx-variable-syntax-1
pass unclass2.t:xxx-subsitution-eval-order
pass unclass2.t:xxx-set-option-1
pass unclass2.t:xxx-exec-1
pass unclass2.t:xxx-while-1
pass unclass2.t:xxx-status-1
FAIL unclass2.t:xxx-status-2
pass unclass2.t:xxx-clean-chars-1
fail unclass2.t:xxx-param-subst-qmark-1 (as expected)
pass unclass2.t:xxx-param-_-1
pass unclass2.t:env-prompt
FAIL integer.t:integer-base-err-1
FAIL integer.t:integer-base-err-2
FAIL integer.t:integer-base-err-3
FAIL integer.t:integer-base-err-4
pass integer.t:integer-base-1
pass integer.t:integer-base-2
pass integer.t:integer-base-3
pass integer.t:integer-base-4
pass integer.t:integer-base-5
pass integer.t:integer-base-6
pass integer.t:integer-base-7
Total failed: 10 (7 unexpected)
Total passed: 185
[vax-linux:root]:(~/rpmbuild/BUILD/pdksh-5.2.14)# 

mandriva 2011上のpdksh v5.2.14

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.