pdksh hilang dari RHEL 6 dan CentOS 6?

8

Paket pdkshtidak ada di RHEL 6 atau CentOS 6 ketika saya mencoba menginstalnya yum.

Jadi pertanyaan saya:

  1. Mengapa itu tidak lagi tersedia di repositori default? Ini tersedia dalam versi 5.x.
  2. Apakah ada shell pengganti?
  3. Bagaimana dengan program yang bergantung pada pdksh? Bisakah mereka menggunakan shell pengganti?

Solusi saya adalah menggunakan paket dari versi 5, yang saya rasa bukan solusi yang tepat dan saya harus memahaminya lebih baik daripada solusi.

Kekhawatiran saya terutama tentang Oracle Database. Itu meminta pdksh, jadi apakah itu akan menjadi masalah untuk menggunakan shell replacment selain pdksh?

Basis Data
sumber
2
Mungkin mkshbisa membuatmu bahagia juga? - "penerus Domain Publik Korn Shell (pdksh)"
sr_
hai, saya tidak punya masalah sama sekali dengan paket apa pun, pertanyaan saya terkait dengan sisi teknis! jika saya menginstal mksh apakah suatu aplikasi tergantung pada pdksh yang masih berfungsi walaupun itu meminta pdksh dan ada mksh saja?
Basis Data

Jawaban:

7

Saya mendapat kesan bahwa pdksh tidak sesuai dengan POSIX, dan dengan rilis open source AT&T KSH, ada pergerakan yang signifikan dari pdksh ke ksh . Hanya $ 0,02 saya

AT&T ksh dilisensikan oleh Eclipse Public License 1.0 (EPL-1.0).

bsd
sumber
2
Anda membingungkan open source dan domain publik tetapi bagaimanapun, Anda benar pdksh adalah implementasi ulang yang buruk dan ksh93 nyata yang tersedia secara bebas adalah pilihan yang jauh lebih baik.
jlliagre
open source, domain publik, gratis, lisensi a, b, c YA, saya bingung dan sering menggunakan yang sebelumnya secara bergantian;)
bsd
2
Sayangnya itu tergantung pada skripnya. Anda dapat menginstal ksh dan membuat symlink pdksh sehingga #! dia poni tidak putus, tapi skrip demi skrip selalu ada kemungkinan beberapa "fitur" atau lainnya mungkin rusak. Cobalah dan lihat, bersiaplah untuk memulihkan pdksh
bsd
3
Apa yang hilang dalam pdksh untuk kepatuhan POSIX? @ Data-Base Deviasi utama pdksh dari AT&T ksh adalah bahwa perintah terakhir dalam sebuah pipa dieksekusi di shell induk hanya di AT&T ksh. Terlepas dari itu, pdksh cukup dekat dengan AT&T ksh88, dan ksh93 kompatibel dengan ksh88 kecuali dalam kasus yang sangat tidak biasa. Tentu saja, tidak pernah dijamin bahwa tidak ada skrip Anda bergantung pada kasus yang tidak biasa tersebut.
Gilles 'SO- berhenti bersikap jahat'
1
Dalam paket RHEL5, tertulis:Pdksh is unmaintained since 1998 and is obsoleted by ksh package.
jsbillings
11

Menurut artikel ini " Instalasi Oracle Database 11g Release 2 (11.2) Di Oracle Linux 6 ":

Kegagalan untuk paket "pdksh" dapat diabaikan karena kami menginstal paket "ksh" sebagai gantinya

Pada mesin OEL 6.3 saya yang cukup standar, ksh sudah diinstal sebagai bagian dari build, tetapi Anda mungkin harus melakukan sudo yum install kshuntuk menginstalnya.


DBA kami juga menemukan artikel ini yang mungkin bermanfaat:

Menginstal "11.2.0.3 32-bit (x86)" atau "64-bit (x86-64)" pada laporan RHEL6 yang mengemas elfutils-libelf-devel-0.97dan pdksh-5.2.14hilang.

Berlaku untuk

  • Oracle Server - Enterprise Edition - Versi 11.2.0.3 hingga 11.2.0.3 [Rilis 11.2]
  • Oracle Universal Installer - Versi 11.2.0.3 hingga 11.2.0.3 [Rilis 11.2]
  • Oracle Server - Edisi Standar - Versi 11.2.0.3 hingga 11.2.0.3 [Rilis 11.2]
  • Linux x86
  • Linux x86-64

Gejala

Saat menginstal

  • 11.2.0.3 Perangkat lunak basis data 32-bit (x86) pada server RHEL6 x86
  • 11.2.0.3 Perangkat lunak basis data 64-bit (x86-64) pada server RHEL6 x86-64

yang Oracle Universal Installer (OUI) melaporkan bahwa paket elfultils-libelf-devel-0.97dan pdksh-5.2.14hilang.

Dalam installActions.logoutput berikut dapat diamati:

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

Sebab

OUI menjalankan perintah berikut:

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

tidak ada output yang dikembalikan (karena dalam RHEL6 paket redhat-release telah digantikan oleh redhat-release-server-6Server).

Ini menyebabkan OUI percaya bahwa server itu bukan server RHEL.

Karena OUI tidak dapat mengidentifikasi jenis server itu, OUI melakukan pemeriksaan prasyarat default (OEL4).

Masalah ini telah dicatat sebagai bug yang tidak diterbitkan 13981169 dengan Oracle Development.

Selain itu, tidak ada pemeriksaan prasyarat RHEL6 yang didefinisikan dalam

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

di media 11.2.0.3.

Larutan

Solusi untuk 11.2.0.3 64-bit (x86-64)

Jika Anda telah mengunduh 11.2.0.3 media dari My Oracle Support (MOS) dan mengekstrak perangkat lunaknya ke <path>/database, lakukan hal berikut:

  1. Ubah direktori menjadi <path>/database/stage/cvu/cv/admin
  2. Cadangkan cvu_config cp cvu_config backup_cvu_config
  3. Edit cvu_config dan ubah baris berikut CV_ASSUME_DISTID=OEL4keCV_ASSUME_DISTID=OEL6
  4. Simpan cvu_configfile yang diperbarui
  5. Instal perangkat lunak 11.2.0.3 menggunakan:
    1. <path>/database/runInstaller
    2. cd <path>/database
    3. ./runInstaller

OUI sekarang harus melakukan pemeriksaan prasyarat OEL6 (yang identik dengan pemeriksaan prasyarat RHEL6) dan tidak lagi melaporkan bahwa paket elfutils-libelf-devel-0.97dan pdksh-5.2.14hilang

CATATAN

Jika Anda telah menerima media 11.2.0.3 pada DVD, Anda perlu menyalin media dari DVD ke disk di server RHEL6 (sehingga Anda dapat mengikuti langkah-langkah di atas)

Solusi untuk 11.2.0.3 32-bit (x86)

Karena cvu_prereq.xmlfile untuk 11.2.0.3 32-bit (x86) tidak merujuk RHEL6 atau OEL6, solusi di atas tidak dapat digunakan.

Setelah secara manual memverifikasi bahwa semua persyaratan telah dipenuhi, pilih opsi Abaikan semua di penginstal dan lanjutkan dengan penginstalan.

David
sumber
Bekerja juga di RHEL 6.7 dengan 11.2.0.2.0. Terima kasih!
Michael-O
Bung, Anda bisa mendapatkan masalah karena hak cipta, Anda tidak boleh berbagi dokumentasi dukungan oracle.
jcho360
1

Pemahaman saya adalah bahwa sebelum RHEL 6, Red Hat waspada terhadap AT&T KornShell karena lisensi, sehingga mereka memasukkan pdksh, yang merupakan implementasi yang kurang lengkap. Saya pikir David Korn melakukan yang terbaik untuk membuat ksh diterima di banyak tempat dan di suatu tempat, lisensi itu diperjelas atau diubah. Kutipan ini dari situs web KornShell : "AT&T telah merilis KornShell sebagai sumber terbuka".

Jelas Red Hat puas dengan lisensi pada saat RHEL 6 dirilis, jadi mereka memasukkan "hal yang nyata".

Sunting: sebenarnya dijelaskan di halaman Wikipedia (tentu saja) - lihat paragraf pertama di bawah Sejarah.

wanpelaman
sumber
0

Saya membuat patch untuk paket mandrake 2007.1 rpm lama, dan membuat paket SRPM baru yang harus dikompilasi tanpa masalah di distro linux modern dengan versi gcc yang lebih baru:

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

Dua penyesuaian dibuat: inside siglist.sh: sort + 2n + 0n diganti dengan sort -k3n -k1n dan di dalam beberapa file c shprintf (newline); menjadi shprintf ("% s", baris baru); untuk mencegah -Werror = kesalahan format-keamanan terjadi.

[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 pada mandriva 2011

rmstock
sumber