отсутствует пдкш из RHEL 6 и CentOS 6?


8

Пакет pdkshне существует на RHEL 6 или CentOS 6, когда я пытаюсь установить его через yum.

Итак, мои вопросы:

  1. Почему он больше не доступен в репозиториях по умолчанию? Он доступен в версии 5.x.
  2. Есть ли замена корпуса?
  3. Как насчет программ, которые зависят от pdksh? Могут ли они использовать замену оболочки?

Мой обходной путь состоял в том, чтобы использовать пакет из версии 5, который я считаю не правильным решением, и я должен понимать его лучше, чем обходной путь.

Мое беспокойство в основном касается базы данных Oracle. Он спрашивает pdksh, будет ли проблемой использовать оболочку замены, отличную от pdksh?


2
Может быть, mkshможет сделать вас счастливым тоже? - "Преемник Общего достояния Korn Shell (pdksh)"
sr_

привет, у меня нет проблем с любой упаковкой, мой вопрос связан с технической стороной! если я устанавливаю mksh, зависит ли приложение от pdksh, все еще работающего, даже если оно запрашивает pdksh и вместо него есть mksh?
База данных

Ответы:


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

с открытым исходным кодом, общественное достояние, бесплатно, лицензия a, b, c ДА, я в замешательстве и часто использую любой из первых взаимозаменяемо;)
BSD

2
К сожалению, это зависит от сценария. Вы можете установить ksh и создать символическую ссылку pdksh, чтобы #! она не ломается, но сценарий за сценарием всегда есть вероятность того, что какая-то «особенность» или другая может сломаться. Попробуйте посмотреть, будьте готовы восстановить pdksh
bsd

3
Чего не хватает в pdksh для соответствия POSIX? @ База данных Одним из основных отличий pdksh от AT & T ksh является то, что последняя команда в конвейере выполняется в родительской оболочке только в AT & T ksh. Кроме того, pdksh довольно близок к AT & T ksh88, а ksh93 совместима с ksh88 и выше, за исключением очень необычных случаев. Конечно, никогда не гарантируется, что ни один из ваших сценариев не зависит от такого необычного случая.
Жиль "ТАК - перестань быть злым"

1
В пакете RHEL5 написано:Pdksh is unmaintained since 1998 and is obsoleted by ksh package.
jsbillings

11

Согласно этой статье « Установка Oracle Database 11g Release 2 (11.2) на Oracle Linux 6 »:

Ошибка для пакета "pdksh" может быть проигнорирована, потому что мы установили пакет "ksh" на его место

На моем достаточно стандартном компьютере OEL 6.3 ksh уже был установлен как часть сборки, но вам, возможно, придется сделать это, sudo yum install kshчтобы установить его.


Наши администраторы также нашли эту статью, которая может быть полезна:

Установка «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

симптомы

При установке

  • 11.2.0.3 Программное обеспечение 32-битной (x86) базы данных на сервере RHEL6 x86
  • 11.2.0.3 Программное обеспечение 64-битной (x86-64) базы данных на сервере RHEL6 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).

Эта проблема была зарегистрирована как неопубликованная ошибка 13981169 в Oracle Development.

В дополнение к этому, предварительные условия RHEL6 не определены в

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

в СМИ 11.2.0.3.

Решение

Решение для 11.2.0.3 64-битной (x86-64)

Если вы загрузили носитель 11.2.0.3 из My Oracle Support (MOS) и распаковали программное обеспечение для него <path>/database, выполните следующие действия:

  1. Изменить каталог на <path>/database/stage/cvu/cv/admin
  2. Резервное копирование cvu_config cp cvu_config backup_cvu_config
  3. Отредактируйте cvu_config и измените следующую строку CV_ASSUME_DISTID=OEL4наCV_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.xmlфайл для 11.2.0.3 32-bit (x86) не ссылается на RHEL6 или OEL6, вышеупомянутый обходной путь не может быть использован.

После ручной проверки того, что все требования выполнены, выберите опцию Игнорировать все в программе установки и продолжите установку.


Работает также на RHEL 6.7 с 11.2.0.2.0. Спасибо!
Michael-O

Чувак, ты можешь получить проблему из-за авторских прав, ты не должен делиться документацией поддержки оракула.
jcho360

1

Насколько я понимаю, до RHEL 6 Red Hat с осторожностью относилась к AT & T KornShell из-за его лицензии, поэтому они включили pdksh, который является менее полной реализацией. Я думаю, что Дэвид Корн делал все возможное, чтобы ksh был принят в как можно большем количестве мест, и где-то вдоль линии лицензия была уточнена или изменена. Это цитата с сайта KornShell : «AT & T выпустила KornShell в качестве открытого источника».

Очевидно, что Red Hat была удовлетворена лицензией ко времени выпуска RHEL 6, поэтому они включали «реальную вещь».

Изменить: на самом деле это объясняется на странице Википедии (конечно) - см. Первый абзац в разделе История.


0

Я сделал патч для старого rnd-пакета mandrake 2007.1 и создал новый пакет SRPM, который можно без проблем скомпилировать на современных дистрибутивах Linux с новыми версиями 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

Были сделаны две корректировки: внутри siglist.sh: sort + 2n + 0n заменен на sort -k3n -k1n и внутри нескольких c-файлов shprintf (newline); становится shprintf ("% s", перевод строки); для предотвращения ошибок -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 на mandriva 2011

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.