¿Falta pdksh en RHEL 6 y CentOS 6?


8

El paquete pdkshno existe en RHEL 6 o CentOS 6 cuando intento instalarlo yum.

Entonces mis preguntas:

  1. ¿Por qué ya no está disponible en los repositorios predeterminados? Está disponible en la versión 5.x.
  2. ¿Hay una cáscara de reemplazo?
  3. ¿Qué pasa con los programas que dependen pdksh? ¿Pueden usar la cáscara de reemplazo?

Mi solución ha sido usar el paquete de la versión 5, que creo que no es la solución adecuada y debería entenderlo mejor que la solución.

Mi preocupación es principalmente con respecto a la base de datos Oracle. Pide pdksh, así que ¿será un problema usar un shell de reemplazo que no sea pdksh?


2
¿Quizás también mkshpodría hacerte feliz? - "un sucesor del dominio público Korn Shell (pdksh)"
sr_

Hola, no tengo ningún problema con ningún paquete, mi pregunta está relacionada con el aspecto técnico. si instalo mksh, ¿una aplicación depende de que pdksh siga funcionando incluso si solicita el pdksh y hay mksh en su lugar?
Base de datos el

Respuestas:


7

Tenía la impresión de que pdksh no era compatible con POSIX, y con el lanzamiento de código abierto AT&T KSH, hubo un movimiento significativo de pdksh a ksh . Solo mis $ 0.02

AT&T ksh tiene licencia de Eclipse Public License 1.0 (EPL-1.0).


2
Está confundiendo el código abierto y el dominio público, pero de todos modos, tiene razón pdksh es una reimplementación bastante pobre y el ksh93 real que está disponible gratuitamente es una opción mucho mejor.
jlliagre

código abierto, dominio público, gratuito, licencia a, b, c SÍ, estoy confundido y uso con frecuencia cualquiera de los primeros indistintamente;)
bsd

2
Lamentablemente eso depende del guión. Puede instalar el ksh y crear un enlace simbólico pdksh para que el #! ella no se rompe, pero script por script siempre existe la posibilidad de que alguna "característica" u otra se rompa. Pruébelo y vea, esté listo para restaurar el pdksh
bsd

3
¿Qué falta en pdksh para el cumplimiento de POSIX? @ Base de datos La principal desviación de pdksh de AT&T ksh es que el último comando en una tubería se ejecuta en el shell principal solo en AT&T ksh. Aparte de eso, pdksh está bastante cerca de AT&T ksh88, y ksh93 es compatible con ksh88, excepto en casos muy inusuales. Por supuesto, nunca se garantiza que ninguno de sus scripts dependa de un caso tan inusual.
Gilles 'SO- deja de ser malvado'

1
En el paquete RHEL5, dice:Pdksh is unmaintained since 1998 and is obsoleted by ksh package.
jsbillings

11

De acuerdo con este artículo " Instalación de Oracle Database 11g Release 2 (11.2) en Oracle Linux 6 ":

La falla para el paquete "pdksh" puede ignorarse porque instalamos el paquete "ksh" en su lugar

En mi máquina OEL 6.3 bastante estándar, ksh ya estaba instalado como parte de la compilación, pero es posible que tenga que hacer una sudo yum install kshpara instalarlo.


Nuestros DBA también encontraron este artículo que puede ser útil:

La instalación de "11.2.0.3 32-bit (x86)" o "64-bit (x86-64)" en RHEL6 informa que los paquetes elfutils-libelf-devel-0.97y pdksh-5.2.14faltan.

Se aplica a

  • Oracle Server - Enterprise Edition - Versión 11.2.0.3 a 11.2.0.3 [Versión 11.2]
  • Oracle Universal Installer - Versión 11.2.0.3 a 11.2.0.3 [Versión 11.2]
  • Oracle Server - Standard Edition - Versión 11.2.0.3 a 11.2.0.3 [Versión 11.2]
  • Linux x86
  • Linux x86-64

Síntomas

Mientras instala

  • 11.2.0.3 Software de base de datos de 32 bits (x86) en el servidor RHEL6 x86
  • 11.2.0.3 Software de base de datos de 64 bits (x86-64) en el servidor RHEL6 x86-64

el Oracle Universal Installer (OUI) informa que los paquetes elfultils-libelf-devel-0.97y pdksh-5.2.14se están perdiendo.

En el installActions.logsiguiente resultado se puede observar:

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

Porque

OUI ejecuta el siguiente comando:

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

no se devuelve ninguna salida (porque en RHEL6 el paquete redhat-release ha sido reemplazado por redhat-release-server-6Server).

Esto hace que OUI crea que el servidor no es un servidor RHEL.

Como OUI no puede identificar qué tipo de servidor es, OUI realiza las comprobaciones de requisitos previos predeterminados (OEL4).

Este problema se ha registrado como error no publicado 13981169 con Oracle Development.

Además de esto, no se definen comprobaciones de requisitos previos RHEL6 en

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

en los medios 11.2.0.3.

Solución

Solución para 11.2.0.3 de 64 bits (x86-64)

Si ha descargado los medios 11.2.0.3 de My Oracle Support (MOS) y ha extraído el software <path>/database, haga lo siguiente:

  1. Cambiar directorio a <path>/database/stage/cvu/cv/admin
  2. Copia de seguridad cvu_config cp cvu_config backup_cvu_config
  3. Edite cvu_config y cambie la siguiente línea CV_ASSUME_DISTID=OEL4aCV_ASSUME_DISTID=OEL6
  4. Guarda el cvu_configarchivo actualizado
  5. Instale el software 11.2.0.3 usando:
    1. <path>/database/runInstaller
    2. cd <path>/database
    3. ./runInstaller

OUI ahora debe realizar las verificaciones de prerrequisitos de OEL6 (que son idénticas a las verificaciones de prerrequisitos de RHEL6) y no informar más sobre los paquetes elfutils-libelf-devel-0.97y pdksh-5.2.14faltan

NOTA

Si ha recibido los medios 11.2.0.3 en DVD, será necesario copiar los medios desde el DVD a un disco en el servidor RHEL6 (para que pueda seguir los pasos anteriores)

Solución para 11.2.0.3 32 bits (x86)

Como el cvu_prereq.xmlarchivo para 11.2.0.3 de 32 bits (x86) no hace referencia a RHEL6 u OEL6, no se puede utilizar la solución anterior.

Después de verificar manualmente que se han cumplido todos los requisitos, elija la opción Ignorar todo en el instalador y continúe con la instalación.


Funciona también en RHEL 6.7 con 11.2.0.2.0. ¡Gracias!
Michael-O

Amigo, puedes obtener problemas de derechos de autor, no debes compartir la documentación de soporte de Oracle.
jcho360

1

Tengo entendido que antes de RHEL 6, Red Hat desconfiaba del AT&T KornShell debido a su licencia, por lo que incluían el pdksh, que es una implementación menos completa. Creo que David Korn estaba haciendo todo lo posible para que ksh fuera aceptado en tantos lugares como fuera posible y en algún punto de la línea se aclaró o cambió la licencia. Esta cita es del sitio web de KornShell : "AT&T ha lanzado KornShell como código abierto".

Obviamente, Red Hat estaba satisfecho con la licencia cuando se lanzó RHEL 6, por lo que incluyeron "lo real".

Editar: en realidad se explica en la página de Wikipedia (por supuesto); vea el primer párrafo en Historia.


0

Hice un parche para un viejo paquete de mandrake 2007.1 rpm, y creé un nuevo paquete SRPM que debería ser capaz de compilar sin problemas en las distribuciones modernas de linux con las nuevas versiones de 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

Se realizaron dos ajustes: dentro de siglist.sh: sort + 2n + 0n se reemplaza por sort -k3n -k1n y dentro de varios archivos c shprintf (nueva línea); se convierte en shprintf ("% s", nueva línea); para evitar que ocurran los errores -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 en mandriva 2011

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.