pdksh fehlt in RHEL 6 und CentOS 6?

8

Das Paket pdkshist unter RHEL 6 oder CentOS 6 nicht vorhanden, wenn ich versuche, es über zu installieren yum.

Also meine Fragen:

  1. Warum ist es in den Standard-Repositorys nicht mehr verfügbar? Es ist in Version 5.x verfügbar.
  2. Gibt es eine Ersatzschale?
  3. Was ist mit Programmen, die davon abhängen pdksh? Können sie die Ersatzschale verwenden?

Meine Problemumgehung bestand darin, das Paket aus Version 5 zu verwenden, was meiner Meinung nach nicht die richtige Lösung ist und ich sollte es besser verstehen als die Problemumgehung.

Mein Anliegen betrifft hauptsächlich Oracle Database. Es wird darum pdkshgebeten, ob es ein Problem ist, eine andere Ersatzschale als zu verwenden pdksh.

Datenbank
quelle
2
Vielleicht mkshkönntest du dich auch glücklich machen? - "ein Nachfolger der Public Domain Korn Shell (pdksh)"
sr_
Hallo, ich habe überhaupt kein Problem mit einem Paket, meine Frage bezieht sich auf die technische Seite! Wenn ich mksh installiere, hängt eine Anwendung davon ab, dass pdksh noch funktioniert, auch wenn es pdksh anfordert und stattdessen mksh vorhanden ist?
Datenbank

Antworten:

7

Ich hatte den Eindruck, dass pdksh nicht POSIX-konform war, und mit der Veröffentlichung von Open Source AT & T KSH gab es eine signifikante Bewegung von pdksh zu ksh . Nur meine $ 0,02

AT & T ksh ist durch die Eclipse Public License 1.0 (EPL-1.0) lizenziert.

bsd
quelle
2
Sie verwechseln Open Source und Public Domain, aber Sie haben Recht, pdksh ist eine ziemlich schlechte Neuimplementierung, und das echte ksh93, das frei verfügbar ist, ist eine viel bessere Wahl.
jlliagre
Open Source, gemeinfrei, kostenlos, Lizenz a, b, c JA, ich bin verwirrt und verwende häufig eine der ersteren austauschbar;)
bsd
2
Das hängt leider vom Skript ab. Sie können das ksh installieren und einen pdksh-Symlink erstellen, damit das #! Ihr Pony bricht nicht, aber Skript für Skript besteht immer die Möglichkeit, dass irgendein "Feature" oder ein anderes kaputt geht. Probieren Sie es aus und seien Sie bereit, das pdksh wiederherzustellen
bsd am
3
Was fehlt in pdksh für die POSIX-Konformität? @ Datenbank Die einzige wesentliche Abweichung von pdksh von AT & T ksh besteht darin, dass der letzte Befehl in einer Pipeline in der übergeordneten Shell nur in AT & T ksh ausgeführt wird. Abgesehen davon ist pdksh ziemlich nahe an AT & T ksh88 und ksh93 ist mit ksh88 aufwärtskompatibel, außer in sehr ungewöhnlichen Fällen. Natürlich kann niemals garantiert werden, dass keines Ihrer Skripte von einem solchen ungewöhnlichen Fall abhängt.
Gilles 'SO - hör auf böse zu sein'
1
Im RHEL5-Paket heißt es:Pdksh is unmaintained since 1998 and is obsoleted by ksh package.
jsbillings
11

Gemäß diesem Artikel " Installation von Oracle Database 11g Release 2 (11.2) unter Oracle Linux 6 ":

Der Fehler für das "pdksh" -Paket kann ignoriert werden, da wir das "ksh" -Paket an seiner Stelle installiert haben

Auf meinem Standard-OEL 6.3-Computer wurde ksh bereits als Teil des Builds installiert, aber Sie müssen möglicherweise eine sudo yum install kshausführen, um es zu installieren.


Unsere Datenbankadministratoren haben auch diesen Artikel gefunden, der von Nutzen sein kann:

Wenn Sie "11.2.0.3 32-Bit (x86)" oder "64-Bit (x86-64)" auf RHEL6 installieren, werden diese Pakete gemeldet elfutils-libelf-devel-0.97 und pdksh-5.2.14fehlen.

Gilt für

  • Oracle Server - Enterprise Edition - Version 11.2.0.3 bis 11.2.0.3 [Release 11.2]
  • Oracle Universal Installer - Version 11.2.0.3 bis 11.2.0.3 [Release 11.2]
  • Oracle Server - Standard Edition - Version 11.2.0.3 bis 11.2.0.3 [Release 11.2]
  • Linux x86
  • Linux x86-64

Symptome

Während der Installation

  • 11.2.0.3 32-Bit-Datenbanksoftware (x86) auf dem RHEL6 x86-Server
  • 11.2.0.3 64-Bit-Datenbanksoftware (x86-64) auf dem RHEL6 x86-64-Server

Der Oracle Universal Installer (OUI) meldet, dass Pakete elfultils-libelf-devel-0.97undpdksh-5.2.14 fehlen.

In der installActions.logfolgenden Ausgabe kann beobachtet werden:

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: -----------------------------------------------:    

Ursache

OUI führt den folgenden Befehl aus:

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

Es wird keine Ausgabe zurückgegeben (da in RHEL6 das Paket redhat-release durch redhat-release-server-6Server ersetzt wurde).

Dies lässt OUI glauben, dass der Server kein RHEL-Server ist.

Da OUI nicht erkennen kann, um welchen Servertyp es sich handelt, führt OUI die Standardprüfungen (OEL4) durch.

Dieses Problem wurde als unveröffentlichter Fehler 13981169 mit Oracle Development protokolliert.

Darüber hinaus sind in RHEL6 keine Voraussetzungsprüfungen definiert

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

in den 11.2.0.3 Medien.

Lösung

Lösung für 11.2.0.3 64-Bit (x86-64)

Wenn Sie das 11.2.0.3-Medium von My Oracle Support (MOS) heruntergeladen und die Software extrahiert haben <path>/database, gehen Sie wie folgt vor:

  1. Wechseln Sie in das Verzeichnis <path>/database/stage/cvu/cv/admin
  2. Sichern Sie cvu_config cp cvu_config backup_cvu_config
  3. Bearbeiten Sie cvu_config und ändern Sie die folgende Zeile CV_ASSUME_DISTID=OEL4 inCV_ASSUME_DISTID=OEL6
  4. Speichern Sie die aktualisierten cvu_config Datei
  5. Installieren Sie die 11.2.0.3-Software mit:
    1. <path>/database/runInstaller
    2. cd <path>/database
    3. ./runInstaller

OUI sollte jetzt die OEL6-Voraussetzungsprüfungen durchführen (die mit den RHEL6-Voraussetzungsprüfungen identisch sind) und diese Pakete elfutils-libelf-devel-0.97und nicht mehr meldenpdksh-5.2.14 fehlen

HINWEIS

Wenn Sie das 11.2.0.3-Medium auf DVD erhalten haben, müssen Sie das Medium von der DVD auf eine Festplatte auf dem RHEL6-Server kopieren (damit Sie die obigen Schritte ausführen können).

Lösung für 11.2.0.3 32-Bit (x86)

Als die cvu_prereq.xml Datei für 11.2.0.3 32-Bit (x86) nicht auf RHEL6 oder OEL6 verweist, kann die obige Problemumgehung nicht verwendet werden.

Nachdem Sie manuell überprüft haben, ob alle Anforderungen erfüllt sind, wählen Sie im Installationsprogramm die Option Alle ignorieren und fahren Sie mit der Installation fort.

David
quelle
Funktioniert auch unter RHEL 6.7 mit 11.2.0.2.0. Vielen Dank!
Michael-O
Alter, du kannst aufgrund des Urheberrechts Probleme bekommen, du solltest keine Oracle-Support-Dokumentation teilen.
jcho360
1

Nach meinem Verständnis war Red Hat vor RHEL 6 wegen seiner Lizenz vorsichtig mit AT & T KornShell , daher enthielten sie das pdksh, eine weniger vollständige Implementierung. Ich denke, David Korn hat sein Bestes getan, um ksh an so vielen Orten wie möglich zu akzeptieren, und irgendwo auf der Linie wurde die Lizenz geklärt oder geändert. Dieses Zitat stammt von der KornShell- Website: "AT & T hat KornShell als Open Source veröffentlicht".

Offensichtlich war Red Hat zum Zeitpunkt der Veröffentlichung von RHEL 6 mit der Lizenz zufrieden, daher enthielten sie "das Original".

Bearbeiten: Eigentlich wird es auf der Wikipedia-Seite erklärt (natürlich) - siehe den ersten Absatz unter Verlauf.

Wanpelaman
quelle
0

Ich habe einen Patch für ein altes Mandrake 2007.1 U / min-Paket erstellt und ein neues SRPM-Paket erstellt, das problemlos auf modernen Linux-Distributionen mit neueren gcc-Versionen kompiliert werden kann:

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

Es wurden zwei Anpassungen vorgenommen: Innerhalb von siglist.sh: sort + 2n + 0n wird durch sort -k3n -k1n ersetzt und innerhalb mehrerer c-Dateien shprintf (newline); wird zu shprintf ("% s", Zeilenumbruch); um zu verhindern, dass die Sicherheitsfehler -Werror = format auftreten.

[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)# 

pdksh v5.2.14 auf mandriva 2011

rmstock
quelle