pdksh mancante da RHEL 6 e CentOS 6?


8

Il pacchetto pdkshnon esiste su RHEL 6 o CentOS 6 quando provo a installarlo tramite yum.

Quindi le mie domande:

  1. Perché non è più disponibile nei repository predefiniti? È disponibile nella versione 5.x.
  2. C'è un guscio sostitutivo?
  3. Che dire dei programmi che dipendono pdksh? Possono usare il guscio sostitutivo?

La mia soluzione alternativa è stata quella di utilizzare il pacchetto dalla versione 5, che ritengo non sia la soluzione corretta e dovrei capirlo meglio della soluzione alternativa.

La mia preoccupazione riguarda principalmente Oracle Database. Lo richiede pdksh, quindi sarà un problema usare una shell di sostituzione diversa da pdksh?


2
Forse mkshpotresti renderti felice anche tu? - "un successore del dominio pubblico Korn Shell (pdksh)"
sr_

ciao, non ho nessun problema con nessun pacchetto, la mia domanda è relativa al lato tecnico! se installo mksh un'applicazione dipende dal fatto che pdksh funzioni ancora anche se richiede pdksh e invece c'è mksh?
Base di dati

Risposte:


7

Avevo l'impressione che pdksh non fosse conforme a POSIX e, con il rilascio dell'AT & T KSH open source, ci fu un movimento significativo da pdksh a ksh . Solo i miei $ 0,02

AT&T ksh è concesso in licenza da Eclipse Public License 1.0 (EPL-1.0).


2
Stai confondendo open source e dominio pubblico ma comunque hai ragione pdksh è una reimplementazione piuttosto scadente e il vero ksh93 che è liberamente disponibile è una scelta molto migliore.
jlliagre,

open source, dominio pubblico, gratuito, licenza a, b, c SÌ, sono confuso e uso frequentemente uno qualsiasi dei precedenti in modo intercambiabile;)
bsd

2
Sfortunatamente ciò dipende dalla sceneggiatura. Puoi installare ksh e creare un symlink pdksh in modo che #! lei non si rompe, ma script per script c'è sempre la possibilità che alcune "funzionalità" o altre possano rompersi. Provalo e guarda, sii pronto a ripristinare il pdksh
bsd

3
Cosa manca in pdksh per la conformità POSIX? @ Data-Base L'unica principale deviazione di pdksh da AT&T ksh è che l'ultimo comando in una pipeline viene eseguito nella shell genitore solo in AT&T ksh. A parte questo, pdksh è abbastanza vicino ad AT&T ksh88 e ksh93 è compatibile con ksh88 verso l'alto, tranne in casi molto insoliti. Naturalmente, non è mai garantito che nessuno dei tuoi script dipenda da un caso così insolito.
Gilles 'SO- smetti di essere malvagio' il

1
Nel pacchetto RHEL5, dice:Pdksh is unmaintained since 1998 and is obsoleted by ksh package.
jsbillings,

11

Secondo questo articolo " Installazione di Oracle Database 11g versione 2 (11.2) su Oracle Linux 6 ":

L'errore per il pacchetto "pdksh" può essere ignorato perché abbiamo installato il pacchetto "ksh" al suo posto

Sulla mia macchina OEL 6.3 abbastanza standard, ksh era già installato come parte della build, ma potrebbe essere necessario fare un sudo yum install kshper installarlo.


I nostri DBA hanno anche trovato questo articolo che potrebbe essere utile:

L'installazione di "11.2.0.3 32-bit (x86)" o "64-bit (x86-64)" su RHEL6 segnala che i pacchetti elfutils-libelf-devel-0.97e pdksh-5.2.14mancano.

Si applica a

  • Oracle Server - Enterprise Edition - Versione da 11.2.0.3 a 11.2.0.3 [Release 11.2]
  • Oracle Universal Installer - Versione da 11.2.0.3 a 11.2.0.3 [Versione 11.2]
  • Oracle Server - Standard Edition - Versione da 11.2.0.3 a 11.2.0.3 [Release 11.2]
  • Linux x86
  • Linux x86-64

Sintomi

Durante l'installazione

  • 11.2.0.3 Software di database a 32 bit (x86) sul server RHEL6 x86
  • 11.2.0.3 Software di database a 64 bit (x86-64) sul server RHEL6 x86-64

l' Oracle Universal Installer (OUI) riferisce che i pacchetti elfultils-libelf-devel-0.97e le pdksh-5.2.14mancano.

Nel installActions.logseguente output si può osservare:

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

Causa

OUI esegue il comando seguente:

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

non viene restituito alcun output (perché in RHEL6 il pacchetto redhat-release è stato sostituito da redhat-release-server-6Server).

Ciò fa credere a OUI che il server non sia un server RHEL.

Poiché OUI non è in grado di identificare il tipo di server, OUI esegue i controlli dei prerequisiti predefiniti (OEL4).

Questo problema è stato registrato come bug non pubblicato 13981169 con Oracle Development.

Inoltre, non sono definiti controlli dei prerequisiti RHEL6

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

nel supporto 11.2.0.3.

Soluzione

Soluzione per 11.2.0.3 a 64 bit (x86-64)

Se hai scaricato il supporto 11.2.0.3 da My Oracle Support (MOS) e hai estratto il software <path>/database, procedi come segue:

  1. Cambia directory in <path>/database/stage/cvu/cv/admin
  2. Backup cvu_config cp cvu_config backup_cvu_config
  3. Modifica cvu_config e modifica la seguente riga CV_ASSUME_DISTID=OEL4inCV_ASSUME_DISTID=OEL6
  4. Salva il cvu_configfile aggiornato
  5. Installa il software 11.2.0.3 usando:
    1. <path>/database/runInstaller
    2. cd <path>/database
    3. ./runInstaller

OUI ora dovrebbe eseguire i controlli dei prerequisiti OEL6 (che sono identici ai controlli dei prerequisiti RHEL6) e non riportare più quei pacchetti elfutils-libelf-devel-0.97e pdksh-5.2.14sono mancanti

NOTA

Se hai ricevuto il supporto 11.2.0.3 su DVD, sarà necessario copiare il supporto dal DVD su un disco sul server RHEL6 (in modo da poter seguire i passaggi precedenti)

Soluzione per 11.2.0.3 a 32 bit (x86)

Poiché il cvu_prereq.xmlfile per 11.2.0.3 a 32 bit (x86) non fa riferimento a RHEL6 o OEL6, non è possibile utilizzare la soluzione indicata sopra.

Dopo aver verificato manualmente che tutti i requisiti sono stati soddisfatti, scegli l' opzione Ignora tutto nel programma di installazione e continua con l'installazione.


Funziona anche su RHEL 6.7 con 11.2.0.2.0. Grazie!
Michael-O,

Amico, puoi ottenere il diritto d'autore dovuto, non dovresti condividere la documentazione di supporto Oracle.
jcho360,

1

La mia comprensione è che prima di RHEL 6, Red Hat diffidava di AT&T KornShell a causa della sua licenza, quindi includevano il pdksh, che è un'implementazione meno completa. Penso che David Korn stesse facendo del suo meglio per ottenere il ksh accettato in quanti più posti possibili e da qualche parte lungo la linea la licenza è stata chiarita o cambiata. Questa citazione è tratta dal sito Web di KornShell : "AT&T ha rilasciato KornShell come open source".

Ovviamente Red Hat era soddisfatto della licenza al momento del rilascio di RHEL 6, quindi includeva "la cosa reale".

Modifica: in realtà è spiegato sulla pagina di Wikipedia (ovviamente) - vedi il primo paragrafo in Storia.


0

Ho creato una patch per un vecchio pacchetto mandrake 2007.1 rpm e ho creato un nuovo pacchetto SRPM che si dovrebbe essere in grado di compilare senza problemi sulle moderne distribuzioni di Linux con le nuove versioni di gcc:

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

Sono state apportate due modifiche: dentro siglist.sh: sort + 2n + 0n è sostituito da sort -k3n -k1n e all'interno di diversi file c shprintf (newline); diventa shprintf ("% s", newline); per evitare che si verifichino errori -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)# 

pdksh v5.2.14 su mandriva 2011

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.