pdksh manquant dans RHEL 6 et CentOS 6?


8

Le package pdkshn'existe pas sur RHEL 6 ou CentOS 6 lorsque j'essaie de l'installer via yum.

Alors mes questions:

  1. Pourquoi n'est-il plus disponible dans les référentiels par défaut? Il est disponible en version 5.x.
  2. Y a-t-il une coque de remplacement?
  3. Et les programmes qui en dépendent pdksh? Peuvent-ils utiliser la coque de remplacement?

Ma solution de contournement a été d'utiliser le package de la version 5, qui, selon moi, n'est pas la bonne solution et je devrais le comprendre mieux que la solution de contournement.

Ma préoccupation concerne principalement Oracle Database. Il demande pdksh, sera-ce donc un problème d'utiliser un shell de remplacement autre que pdksh?


2
Peut mksh- être pourrais-tu aussi te rendre heureux? - "un successeur du domaine public Korn Shell (pdksh)"
sr_

salut, je n'ai aucun problème avec n'importe quel paquet, ma question est liée au côté technique! si j'installe mksh, une application dépend-elle du fait que pdksh fonctionne toujours même si elle demande le pdksh et qu'il y a mksh à la place?
Base de données du

Réponses:


7

J'avais l'impression que pdksh n'était pas compatible POSIX, et avec la sortie de l'open source AT&T KSH, il y a eu un mouvement important de pdksh vers ksh . Juste mon 0,02 $

AT&T ksh est autorisé par la licence publique Eclipse 1.0 (EPL-1.0).


2
Vous confondez l'open source et le domaine public mais de toute façon, vous avez raison pdksh est une réimplémentation assez médiocre et le vrai ksh93 qui est librement disponible est un bien meilleur choix.
jlliagre

open source, domaine public, gratuit, licence a, b, c OUI, je suis confus et j'utilise fréquemment l'un des anciens de manière interchangeable;)
bsd

2
Malheureusement, cela dépend du script. Vous pouvez installer le ksh et créer un lien symbolique pdksh afin que le #! elle ne cogne pas, mais script par script, il y a toujours la possibilité qu'une "fonctionnalité" ou une autre se casse. Essayez-le, soyez prêt à restaurer le pdksh
bsd

3
Que manque-t-il dans pdksh pour la conformité POSIX? @ Data-Base La seule déviation majeure de pdksh par rapport à AT&T ksh est que la dernière commande d'un pipeline est exécutée dans le shell parent uniquement dans AT&T ksh. En dehors de cela, pdksh est assez proche de AT&T ksh88, et ksh93 est compatible avec ksh88, sauf dans des cas très inhabituels. Bien sûr, il n'est jamais garanti qu'aucun de vos scripts ne dépende d'un tel cas inhabituel.
Gilles 'SO- arrête d'être méchant'

1
Dans le package RHEL5, il est dit:Pdksh is unmaintained since 1998 and is obsoleted by ksh package.
jsbillings

11

Selon cet article " Installation d'Oracle Database 11g Release 2 (11.2) sur Oracle Linux 6 ":

L'échec du package "pdksh" peut être ignoré car nous avons installé le package "ksh" à sa place

Sur ma machine OEL 6.3 assez standard, ksh était déjà installé dans le cadre de la construction, mais vous devrez peut-être faire un sudo yum install kshpour l'installer.


Nos administrateurs de bases de données ont également trouvé cet article qui peut être utile:

L'installation de «11.2.0.3 32 bits (x86)» ou «64 bits (x86-64)» sur RHEL6 signale que les packages elfutils-libelf-devel-0.97et pdksh-5.2.14sont manquants.

S'applique à

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

Symptômes

Lors de l'installation

  • 11.2.0.3 Logiciel de base de données 32 bits (x86) sur le serveur RHEL6 x86
  • 11.2.0.3 Logiciel de base de données 64 bits (x86-64) sur le serveur RHEL6 x86-64

l' Oracle Universal Installer (de PIAP) signale que les paquets elfultils-libelf-devel-0.97et pdksh-5.2.14manquent.

Dans la installActions.logsortie suivante peut être observée:

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

Cause

OUI exécute la commande suivante:

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

aucune sortie n'est retournée (car dans RHEL6 le package redhat-release a été remplacé par redhat-release-server-6Server).

Cela fait croire à OUI que le serveur n'est pas un serveur RHEL.

Comme OUI ne peut pas identifier de quel type de serveur il s'agit, OUI effectue les vérifications des prérequis par défaut (OEL4).

Ce problème a été enregistré comme bogue 13981169 non publié avec Oracle Development.

De plus, aucun contrôle préalable RHEL6 n'est défini dans

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

dans les médias 11.2.0.3.

Solution

Solution pour 11.2.0.3 64 bits (x86-64)

Si vous avez téléchargé le support 11.2.0.3 depuis My Oracle Support (MOS) et extrait le logiciel vers <path>/database, procédez comme suit:

  1. Changer le répertoire en <path>/database/stage/cvu/cv/admin
  2. Sauvegarde cvu_config cp cvu_config backup_cvu_config
  3. Modifiez cvu_config et remplacez la ligne suivante CV_ASSUME_DISTID=OEL4parCV_ASSUME_DISTID=OEL6
  4. Enregistrez le cvu_configfichier mis à jour
  5. Installez le logiciel 11.2.0.3 en utilisant:
    1. <path>/database/runInstaller
    2. cd <path>/database
    3. ./runInstaller

OUI doit maintenant effectuer les vérifications des conditions préalables OEL6 (qui sont identiques aux vérifications des conditions préalables RHEL6) et ne plus signaler que les packages elfutils-libelf-devel-0.97et pdksh-5.2.14sont manquants

REMARQUE

Si vous avez reçu le support 11.2.0.3 sur DVD, il sera nécessaire de copier le support du DVD sur un disque sur le serveur RHEL6 (afin de pouvoir suivre les étapes ci-dessus)

Solution pour 11.2.0.3 32 bits (x86)

Étant donné que le cvu_prereq.xmlfichier pour 11.2.0.3 32 bits (x86) ne fait pas référence à RHEL6 ou OEL6, la solution de contournement ci-dessus ne peut pas être utilisée.

Après avoir vérifié manuellement que toutes les conditions sont remplies, choisissez l' option Ignorer tout dans le programme d'installation et poursuivez l'installation.


Fonctionne également sur RHEL 6.7 avec 11.2.0.2.0. Je vous remercie!
Michael-O

Mec, vous pouvez obtenir un problème de copyright, vous ne devez pas partager la documentation de support Oracle.
jcho360

1

D'après ce que je comprends, avant RHEL 6, Red Hat se méfiait de l'AT & T KornShell en raison de sa licence, ils incluaient donc le pdksh, qui est une implémentation moins complète. Je pense que David Korn faisait de son mieux pour faire accepter ksh dans autant d'endroits que possible et quelque part le long de la ligne, la licence a été clarifiée ou modifiée. Cette citation est tirée du site Web de KornShell : "AT&T a publié KornShell en open source".

De toute évidence, Red Hat était satisfait de la licence au moment de la sortie de RHEL 6, ils incluaient donc "la vraie chose".

Edit: en fait, c'est expliqué sur la page Wikipedia (bien sûr) - voir le premier paragraphe sous Historique.


0

J'ai fait un correctif pour un ancien paquetage rpm de mandrake 2007.1, et créé un nouveau paquet SRPM que l'on devrait pouvoir compiler sans aucun problème sur les distributions Linux modernes avec des versions gcc plus récentes:

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

Deux ajustements ont été effectués: à l'intérieur de siglist.sh: sort + 2n + 0n est remplacé par sort -k3n -k1n et à l'intérieur de plusieurs fichiers c shprintf (nouvelle ligne); devient shprintf ("% s", nouvelle ligne); pour éviter que les erreurs -Werror = format-security ne se produisent.

[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 sur mandriva 2011

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.