pdksh bị thiếu từ RHEL 6 và CentOS 6?


8

Gói pdkshkhông tồn tại trên RHEL 6 hoặc CentOS 6 khi tôi cố gắng cài đặt yum.

Vì vậy, câu hỏi của tôi:

  1. Tại sao nó không còn có sẵn trong kho mặc định? Nó có sẵn trong phiên bản 5.x.
  2. Có vỏ thay thế?
  3. Điều gì về các chương trình phụ thuộc vào pdksh? Họ có thể sử dụng vỏ thay thế?

Cách giải quyết của tôi là sử dụng gói từ phiên bản 5, mà tôi cảm thấy không phải là giải pháp phù hợp và tôi nên hiểu nó tốt hơn cách giải quyết.

Mối quan tâm của tôi chủ yếu liên quan đến Cơ sở dữ liệu Oracle. Nó yêu cầu pdksh, vì vậy nó sẽ là một vấn đề để sử dụng một vỏ thay thế khác pdksh?


2
Có lẽ mkshcũng có thể làm cho bạn hạnh phúc? - "người kế thừa cho Tên miền công cộng Korn Shell (pdksh)"
sr_

xin chào, tôi không có vấn đề gì với bất kỳ gói hàng nào, câu hỏi của tôi liên quan đến khía cạnh kỹ thuật! Nếu tôi cài đặt mksh, một ứng dụng phụ thuộc vào pdksh vẫn hoạt động ngay cả khi nó yêu cầu pdksh và có mksh thay thế?
Cơ sở dữ liệu

Câu trả lời:


7

Tôi có ấn tượng rằng pdksh không tuân thủ POSIX và với việc phát hành mã nguồn mở AT & T KSH, đã có sự chuyển dịch đáng kể từ pdksh sang ksh . Chỉ 0,02 đô la của tôi

AT & T ksh được cấp phép bởi Giấy phép công cộng Eclipse 1.0 (EPL-1.0).


2
Bạn đang nhầm lẫn mã nguồn mở và miền công cộng, nhưng dù sao, bạn đúng pdksh là một sự tái hiện khá kém và ksh93 thực sự có sẵn miễn phí là một lựa chọn tốt hơn nhiều.
jlliagre

mã nguồn mở, miền công cộng, miễn phí, giấy phép a, b, c CÓ, tôi bối rối và thường xuyên sử dụng bất kỳ thay thế nào trước đây;)
bsd

2
Thật không may, điều đó phụ thuộc vào kịch bản. Bạn có thể cài đặt ksh và tạo symlink pdksh sao cho #! Cô ấy không phá vỡ, nhưng kịch bản theo kịch bản luôn có khả năng một số "tính năng" hoặc cái khác có thể bị phá vỡ. Hãy thử xem, hãy sẵn sàng để khôi phục pdksh
bsd

3
Điều gì còn thiếu trong pdksh cho việc tuân thủ POSIX? @ Data-Base Một sai lệch chính của pdksh so với AT & T ksh là lệnh cuối cùng trong một đường ống được thực thi trong shell cha chỉ trong AT & T ksh. Ngoài ra, pdksh khá gần với AT & T ksh88, và ksh93 tương thích hướng lên với ksh88 trừ những trường hợp rất bất thường. Tất nhiên, không bao giờ đảm bảo rằng không có đoạn script nào của bạn phụ thuộc vào bất kỳ trường hợp bất thường nào như vậy.
Gilles 'SO- ngừng trở nên xấu xa'

1
Trong gói RHEL5 có ghi:Pdksh is unmaintained since 1998 and is obsoleted by ksh package.
jsbillings

11

Theo bài viết này " Cài đặt cơ sở dữ liệu Oracle 11g Phiên bản 2 (11.2) trên Oracle Linux 6 ":

Không thể bỏ qua gói "pdksh" vì chúng tôi đã cài đặt gói "ksh" vào vị trí của nó

Trên máy OEL 6.3 khá chuẩn của tôi, ksh đã được cài đặt như một phần của bản dựng, nhưng bạn có thể phải thực hiện sudo yum install kshđể cài đặt nó.


Các DBA của chúng tôi cũng tìm thấy bài viết này có thể được sử dụng:

Cài đặt "11.2.0.3 32 bit (x86)" hoặc "64 bit (x86-64)" trên RHEL6 báo cáo rằng các gói elfutils-libelf-devel-0.97pdksh-5.2.14bị thiếu.

Áp dụng cho

  • Máy chủ Oracle - Phiên bản doanh nghiệp - Phiên bản 11.2.0.3 đến 11.2.0.3 [Phiên bản 11.2]
  • Trình cài đặt chung của Oracle - Phiên bản 11.2.0.3 đến 11.2.0.3 [Phiên bản 11.2]
  • Máy chủ Oracle - Phiên bản tiêu chuẩn - Phiên bản 11.2.0.3 đến 11.2.0.3 [Phiên bản 11.2]
  • Linux x86
  • Linux x86-64

Triệu chứng

Trong khi cài đặt

  • 11.2.0.3 Phần mềm cơ sở dữ liệu 32 bit (x86) trên máy chủ RHEL6 x86
  • 11.2.0.3 Phần mềm cơ sở dữ liệu 64 bit (x86-64) trên máy chủ RHEL6 x86-64

các Oracle Universal Installer (OUI) báo cáo rằng gói elfultils-libelf-devel-0.97pdksh-5.2.14đang thiếu.

Trong các installActions.logđầu ra sau đây có thể được quan sát:

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

Nguyên nhân

OUI thực thi lệnh sau:

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

không có đầu ra nào được trả về (vì trong RHEL6, gói phát hành lại đã được thay thế bằng redhat-release-server-6Server).

Điều này khiến OUI tin rằng máy chủ không phải là máy chủ RHEL.

Vì OUI không thể xác định loại máy chủ đó là gì, OUI thực hiện kiểm tra điều kiện tiên quyết mặc định (OEL4).

Vấn đề này đã được ghi lại là lỗi chưa được công bố 13981169 với Oracle Development.

Ngoài ra, không có kiểm tra tiên quyết nào của RHEL6 được xác định trong

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

trong phương tiện truyền thông 11.2.0.3.

Giải pháp

Giải pháp cho 11.2.0.3 64 bit (x86-64)

Nếu bạn đã tải xuống phương tiện 11.2.0.3 từ Hỗ trợ Oracle của tôi (MOS) và trích xuất phần mềm này <path>/database, hãy làm như sau:

  1. Thay đổi thư mục thành <path>/database/stage/cvu/cv/admin
  2. Sao lưu cvu_config cp cvu_config backup_cvu_config
  3. Chỉnh sửa cvu_config và thay đổi dòng sau CV_ASSUME_DISTID=OEL4thànhCV_ASSUME_DISTID=OEL6
  4. Lưu cvu_configtập tin cập nhật
  5. Cài đặt phần mềm 11.2.0.3 bằng:
    1. <path>/database/runInstaller
    2. cd <path>/database
    3. ./runInstaller

Bây giờ OUI nên thực hiện kiểm tra điều kiện tiên quyết OEL6 (giống hệt với kiểm tra điều kiện tiên quyết của RHEL6) và không còn báo cáo rằng các gói elfutils-libelf-devel-0.97pdksh-5.2.14bị thiếu

GHI CHÚ

Nếu bạn đã nhận được phương tiện 11.2.0.3 trên DVD, sẽ cần sao chép phương tiện từ DVD sang đĩa trên máy chủ RHEL6 (để bạn có thể làm theo các bước trên)

Giải pháp cho 11.2.0.3 32 bit (x86)

cvu_prereq.xmltệp cho 11.2.0.3 32 bit (x86) không tham chiếu đến RHEL6 hoặc OEL6, nên không thể sử dụng cách giải quyết trên.

Sau khi xác minh thủ công rằng tất cả các yêu cầu đã được đáp ứng, chọn tùy chọn Bỏ qua tất cả trong trình cài đặt và tiếp tục cài đặt.


Cũng hoạt động trên RHEL 6.7 với 11.2.0.2.0. Cảm ơn bạn!
Michael-O

Anh bạn, bạn có thể gặp vấn đề về bản quyền, bạn không nên chia sẻ tài liệu hỗ trợ của nhà tiên tri.
jcho360

1

Sự hiểu biết của tôi là trước khi có RHEL 6, Red Hat đã cảnh giác với AT & T KornShell vì giấy phép của nó, vì vậy họ đã bao gồm pdksh, đây là một triển khai ít hoàn thiện hơn. Tôi nghĩ David Korn đã làm hết sức mình để khiến ksh được chấp nhận ở càng nhiều nơi càng tốt và ở đâu đó dọc theo giấy phép đã được làm rõ hoặc thay đổi. Trích dẫn này từ trang web của KornShell : "AT & T đã phát hành KornShell dưới dạng nguồn mở".

Rõ ràng Red Hat đã hài lòng với giấy phép vào thời điểm RHEL 6 được phát hành, vì vậy chúng bao gồm "hàng thật".

Chỉnh sửa: thực sự nó đã được giải thích trên trang Wikipedia (tất nhiên) - xem đoạn đầu tiên trong Lịch sử.


0

Tôi đã tạo một bản vá cho gói mandrake 2007.1 cũ và tạo ra gói SRPM mới mà người ta có thể biên dịch mà không gặp bất kỳ vấn đề nào trên bản phân phối linux hiện đại với các phiên bản gcc mới hơn:

ftp://ftp.crashrecovery.org/pub/linux/pdksh/RPMS/mdv2011/ ftp://ftp.crashrecovery.org/pub/linux/pdksh/RPMS/mdv2011/pdksh-5.2.14-21-m201 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 / mv2011 / ksh.pdf

Hai điều chỉnh đã được thực hiện: bên trong siglist.sh: sort + 2n + 0n được thay thế bằng sort -k3n -k1n và bên trong một số tệp c shprintf (dòng mới); trở thành shprintf ("% s", dòng mới); để ngăn các lỗi -Werror = format-security xảy ra.

[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 trên mandriva 2011

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.