적용 대상

적용 대상

pdkshRHEL 6 또는 CentOS 6을 통해 패키지를 설치하려고 하면 RHEL 6 또는 CentOS 6에 패키지가 존재하지 않습니다 yum.

그래서 내 질문은 다음과 같습니다

  1. 기본 저장소에서 더 이상 사용할 수 없는 이유는 무엇입니까? 버전 5.x에서 사용할 수 있습니다.
  2. 교체용 쉘이 있나요?
  3. 의존하는 프로그램은 어떻습니까 pdksh? 교체 케이스를 사용할 수 있나요?

내 해결 방법은 버전 5의 패키지를 사용하는 것이었습니다. 이것이 올바른 솔루션이 아니라고 생각하며 해결 방법보다 더 잘 이해해야 합니다.

나의 주요 관심사는 Oracle 데이터베이스입니다. 질문인데 pdksh, 혹시 이 케이스가 아닌 다른 케이스를 교체해서 사용해도 문제가 없을까요 pdksh?

답변1

이 기사에 따르면 "Oracle Linux 6에 Oracle Database 11g 릴리스 2(11.2) 설치":

해당 위치에 "ksh" 패키지가 설치되어 있으므로 "pdksh" 패키지의 실패는 무시할 수 있습니다.

sudo yum install ksh상당히 표준적인 OEL 6.3 시스템에서는 ksh가 이미 빌드의 일부로 설치되어 있지만 이를 설치하려면 a를 수행해야 할 수도 있습니다 .


우리 DBA는 이 문서가 잠재적으로 유용할 수도 있다고 생각했습니다.

RHEL6 보고서 패키지에 "11.2.0.3 32비트(x86)" 또는 "64비트(x86-64)"를 설치하면 패키지 elfutils-libelf-devel-0.97pdksh-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]
  • 리눅스 x86
  • 리눅스 x86-64

징후

설치시

  • 11.2.0.3 RHEL6 x86 서버의 32비트(x86) 데이터베이스 소프트웨어
  • 11.2.0.3 RHEL6 x86-64 서버의 64비트(x86-64) 데이터베이스 소프트웨어

이것오라클 유니버설 설치 프로그램(OUI) 소포 elfultils-libelf-devel-0.97pdksh-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) 전제 조건 확인을 수행합니다.

이 문제는 Oracle Development에 게시되지 않은 버그 13981169로 기록되어 있습니다.

그 외에는 RHEL6 필수 구성 요소 검사가 정의되어 있지 않습니다.

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

11.2.0.3 미디어에서.

해결책

11.2.0.3 64비트(x86-64) 솔루션

MOS(My Oracle Support)에서 11.2.0.3 미디어를 다운로드하고 여기에 소프트웨어를 추출한 경우 <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.97pdksh-5.2.14누락을 보고하지 않습니다.

노트

11.2.0.3 미디어를 DVD로 받은 경우 위의 단계를 수행할 수 있도록 DVD의 미디어를 RHEL6 서버의 디스크에 복사해야 합니다.

11.2.0.3 32비트(x86) 솔루션

11.2.0.3 32비트(x86)용 파일은 RHEL6 또는 OEL6을 참조하지 않으므로 cvu_prereq.xml위 해결 방법을 사용할 수 없습니다.

모든 요구사항이 충족되었는지 수동으로 확인한 후 선택하세요.전부다 무시해라설치 프로그램의 옵션을 선택하고 설치를 계속합니다.

답변2

내 생각에 pdksh는 POSIX와 호환되지 않으며 오픈 소스 AT&T KSH가 출시되면서 pdksh에서변화 많은. 그냥 내 $0.02

AT&T ksh는 Eclipse Public License 1.0(EPL-1.0)에 따라 라이센스가 부여됩니다.

답변3

제가 이해한 바에 따르면 RHEL 6 이전에는 Red Hat이 AT&T에 대해 신중한 태도를 보였습니다.강쉘컴퍼니라이센스로 인해 덜 완전한 구현인 pdksh가 포함됩니다. David Korn은 가능한 한 많은 곳에서 ksh를 승인하고 그 과정에서 라이센스를 명확히 하거나 변경하기 위해 최선을 다하고 있다고 생각합니다. 이 인용문은 다음에서 유래되었습니다.강쉘컴퍼니웹사이트: "AT&T는 KornShell을 오픈 소스 버전으로 출시했습니다."

분명히 RHEL 6이 출시되었을 때 Red Hat은 라이센스에 만족하여 "실제"를 포함했습니다.

편집: 실제로 Wikipedia 페이지에 설명되어 있습니다(물론). 역사 아래의 첫 번째 단락을 참조하세요.

답변4

나는 이전 mandrake 2007.1 rpm 패키지에 대한 패치를 만들고 최신 gcc 버전이 있는 최신 Linux 배포판에서 문제 없이 컴파일할 수 있는 새로운 SRPM 패키지를 만들었습니다.

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);가 방지 -Werror=로 되었습니다. 형식 보안 오류가 발생하지 않습니다.

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

Mandriva 2011의 pdksh v5.2.14

관련 정보