質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Q&A

解決済

2回答

198閲覧

perlのインストールでエラー

faki

総合スコア2

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

1グッド

0クリップ

投稿2024/04/22 08:58

編集2024/04/22 10:07

実現したいこと

ここに実現したいことを箇条書きで書いてください。
・Perl5.16.3をビルド/イントールして、perlを使えるようにしたい。

前提

RHEL9.2環境に既存環境と同じバージョンのPerlをインストールしようとしています。

同等バージョンのファイルを使い、
以下手順で圧縮ファイルの取得からインストールを実施したのですが、
"# make install"を実施するとエラーが表示されてインストールが失敗します。

su -
wget http://www.perl.com/CPAN/src/perl-5.16.3.tar.gz
unzip perl-5.16.3.tar.gz
cd perl-5.16.3
./Configure -Dprefix=/usr -Dscriptdir=/usr/bin -des -Dusedtrace=/usr/bin/dtrace -DDEBUGGING=-g -Dusethreads
make
make install

当時の構築者も既におらず、構築時のログも無く、
私自身もコンパイルについては知見がなく、
make時のログから以下ログの内容に問題がありそうなことまでは特定できたのですがどのように対応すればいいのか分からず質問させて頂きました。

pp.c:3430:54: error: 'struct crypt_data' has no member named 'current_saltbits'

発生している問題・エラーメッセージ

make installでの出力及びエラー内容全量を記載します。 > [root@stag1 perl-5.16.3]# make install > make install.perl install.man STRIPFLAGS= DESTDIR="" > make[1]: Entering directory '/home/t2462/20240422_tmp_perl_test/perl-5.16.3' > `sh cflags "optimize='-O2 -g'" pp.o` pp.c > CCCMD = cc -DPERL_CORE -c -D_REENTRANT -D_GNU_SOURCE -fpcc-struct-return -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -Wall > pp.c: In function 'Perl_pp_crypt': > pp.c:3430:54: error: 'struct crypt_data' has no member named 'current_saltbits' > 3430 | PL_reentrant_buffer->_crypt_struct_buffer->current_saltbits = 0; > | ^~ > make[1]: *** [makefile:253: pp.o] Error 1 > make[1]: Leaving directory '/home/t2462/20240422_tmp_perl_test/perl-5.16.3' > make: *** [makefile:535: install] Error 2 > [root@stag1 perl-5.16.3]#

該当のソースコード

1万行に及ぶmakefile内容を記載すればいいのか、それともConfigureあるいはmake実施時のログを添付すればいいのか判断もつかず、 差し当たりエラーの出ている「pp.c」の3430行目前後の内容を記載させて頂きます。 3399 3400 PP(pp_crypt) 3401 { 3402 #ifdef HAS_CRYPT 3403 dVAR; dSP; dTARGET; 3404 dPOPTOPssrl; 3405 STRLEN len; 3406 const char *tmps = SvPV_const(left, len); 3407 3408 if (DO_UTF8(left)) { 3409 /* If Unicode, try to downgrade. 3410 * If not possible, croak. 3411 * Yes, we made this up. */ 3412 SV* const tsv = sv_2mortal(newSVsv(left)); 3413 3414 SvUTF8_on(tsv); 3415 sv_utf8_downgrade(tsv, FALSE); 3416 tmps = SvPV_const(tsv, len); 3417 } 3418 # ifdef USE_ITHREADS 3419 # ifdef HAS_CRYPT_R 3420 if (!PL_reentrant_buffer->_crypt_struct_buffer) { 3421 /* This should be threadsafe because in ithreads there is only 3422 * one thread per interpreter. If this would not be true, 3423 * we would need a mutex to protect this malloc. */ 3424 PL_reentrant_buffer->_crypt_struct_buffer = 3425 (struct crypt_data *)safemalloc(sizeof(struct crypt_data)); 3426 #if defined(__GLIBC__) || defined(__EMX__) 3427 if (PL_reentrant_buffer->_crypt_struct_buffer) { 3428 PL_reentrant_buffer->_crypt_struct_buffer->initialized = 0; 3429 /* work around glibc-2.2.5 bug */ 3430 PL_reentrant_buffer->_crypt_struct_buffer->current_saltbits = 0; 3431 } 3432 #endif 3433 } 3434 # endif /* HAS_CRYPT_R */ 3435 # endif /* USE_ITHREADS */ 3436 # ifdef FCRYPT 3437 sv_setpv(TARG, fcrypt(tmps, SvPV_nolen_const(right))); 3438 # else 3439 sv_setpv(TARG, PerlProc_crypt(tmps, SvPV_nolen_const(right))); 3440 # endif 3441 SETTARG; 3442 RETURN; 3443 #else 3444 DIE(aTHX_ 3445 "The crypt() function is unimplemented due to excessive paranoia."); 3446 #endif 3447 } 3448

試したこと

・インストール資材を再取得し、同手順で再試行。
(追記1)
・アドバイスに従い、リンク先の内容からpp.cを修正。
改めてmake installを行うも異なるエラーで失敗。
記載文字数の都合で、melianさんのコメントへの返信にエラー内容を追記させて頂きました。

補足情報(FW/ツールのバージョンなど)

バージョン情報については、上記本文内に記載内容となります。

melian👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

faki

2024/04/22 09:27

melianさん コメント頂きありがとうございます。 一度そちらの内容を確認し、対応・解決できないか頑張ってみます。 結果についてはまた別途記載させて頂くように致します。
faki

2024/04/22 10:26 編集

リンク先より「Fri, 29 Jun 2018 03:35:45 -0700」を参照し、 pp.cを修正して再度make installを試しましたがまだ解決できていません。 再実施時のエラーのうち、 内容の以下に合わせて、pp.cの6038行目に}を追加し、エラー内容1件は解決しました。 > pp.c:6037:1: error: expected declaration or statement at end of input > 6037 | } > | ^ 引き続き自身でも調べつつではありますが、現状で残っているエラー内容をこちらに記載させて頂きます。 質問部には最大文字数起因でログが追記出来ないようでしたので、 申し訳ないのですがこちらに追記させて頂きました。 以下実施時ログ内容 > [root@stag1 perl-5.16.3]# make install > make install.perl install.man STRIPFLAGS= DESTDIR="" > make[1]: Entering directory '/home/XXXXX/perl-5.16.3' > `sh cflags "optimize='-O2 -g'" pp.o` pp.c > CCCMD = cc -DPERL_CORE -c -D_REENTRANT -D_GNU_SOURCE -fpcc-struct-return -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -Wall > pp.c: In function 'Perl_pp_crypt': > pp.c:4505:1: error: invalid storage class for function 'S_do_delete_local' > 4505 | S_do_delete_local(pTHX) > | ^~~~~~~~~~~~~~~~~ > pp.c:4935:1: error: invalid storage class for function 'S_deref_plain_array' > 4935 | S_deref_plain_array(pTHX_ AV *ary) > | ^~~~~~~~~~~~~~~~~~~ > pp.c: At top level: > pp.c:3402: error: unterminated #ifdef > 3402 | #ifdef HAS_CRYPT > | > In file included from perl.h:5030, > from pp.c:28: > proto.h:6001:17: warning: 'S_do_delete_local' declared 'static' but never defined [-Wunused-function] > 6001 | STATIC OP* S_do_delete_local(pTHX); > | ^~~~~~~~~~~~~~~~~ > pp.c: In function 'Perl_pp_crypt': > pp.c:6038:1: warning: control reaches end of non-void function [-Wreturn-type] > 6038 | } > | ^ > In file included from perl.h:5012, > from pp.c:28: > At top level: > pp.h:11:20: warning: 'Perl_pp_runcv' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:6021:1: note: in expansion of macro 'PP' > 6021 | PP(pp_runcv) > | ^~ > pp.h:11:20: warning: 'Perl_pp_coreargs' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:5882:1: note: in expansion of macro 'PP' > 5882 | PP(pp_coreargs) > | ^~ > pp.h:11:20: warning: 'Perl_pp_boolkeys' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:5861:1: note: in expansion of macro 'PP' > 5861 | PP(pp_boolkeys) > | ^~ > pp.h:11:20: warning: 'Perl_unimplemented_op' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:5842:1: note: in expansion of macro 'PP' > 5842 | PP(unimplemented_op) > | ^~ > pp.h:11:20: warning: 'Perl_pp_lock' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:5826:1: note: in expansion of macro 'PP' > 5826 | PP(pp_lock) > | ^~ > pp.h:11:20: warning: 'Perl_pp_once' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:5813:1: note: in expansion of macro 'PP' > 5813 | PP(pp_once) > | ^~ > pp.h:11:20: warning: 'Perl_pp_split' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:5380:1: note: in expansion of macro 'PP' > 5380 | PP(pp_split) > | ^~ > pp.h:11:20: warning: 'Perl_pp_reverse' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:5247:1: note: in expansion of macro 'PP' > 5247 | PP(pp_reverse) > | ^~ > pp.h:11:20: warning: 'Perl_pp_unshift' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:5217:1: note: in expansion of macro 'PP' > 5217 | PP(pp_unshift) > | ^~ > pp.h:11:20: warning: 'Perl_pp_shift' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:5202:1: note: in expansion of macro 'PP' > 5202 | PP(pp_shift) > | ^~ > pp.h:11:20: warning: 'Perl_pp_push' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:5167:1: note: in expansion of macro 'PP' > 5167 | PP(pp_push) > | ^~ > pp.h:11:20: warning: 'Perl_pp_splice' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:4964:1: note: in expansion of macro 'PP' > 4964 | PP(pp_splice) > | ^~ > pp.h:11:20: warning: 'Perl_pp_anonhash' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:4914:1: note: in expansion of macro 'PP' > 4914 | PP(pp_anonhash) > | ^~ > pp.h:11:20: warning: 'Perl_pp_anonlist' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:4903:1: note: in expansion of macro 'PP' > 4903 | PP(pp_anonlist) > | ^~ > pp.h:11:20: warning: 'Perl_pp_lslice' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:4854:1: note: in expansion of macro 'PP' > 4854 | PP(pp_lslice) > | ^~ > pp.h:11:20: warning: 'Perl_pp_list' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:4841:1: note: in expansion of macro 'PP' > 4841 | PP(pp_list) > | ^~ > pp.h:11:20: warning: 'Perl_pp_hslice' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:4782:1: note: in expansion of macro 'PP' > 4782 | PP(pp_hslice) > | ^~ > pp.h:11:20: warning: 'Perl_pp_exists' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:4747:1: note: in expansion of macro 'PP' > 4747 | PP(pp_exists) > | ^~ > pp.h:11:20: warning: 'Perl_pp_delete' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:4681:1: note: in expansion of macro 'PP' > 4681 | PP(pp_delete) > | ^~ > pp.h:11:20: warning: 'Perl_pp_each' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:4472:1: note: in expansion of macro 'PP' > 4472 | PP(pp_each) > | ^~ > pp.h:11:20: warning: 'Perl_pp_akeys' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:4436:1: note: in expansion of macro 'PP' > 4436 | PP(pp_akeys) > | ^~ > pp.h:11:20: warning: 'Perl_pp_aeach' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:4410:1: note: in expansion of macro 'PP' > 4410 | PP(pp_aeach) > | ^~ > pp.h:11:20: warning: 'Perl_pp_rkeys' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:4374:1: note: in expansion of macro 'PP' > 4374 | PP(pp_rkeys) > | ^~ > pp.h:11:20: warning: 'Perl_pp_aslice' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:4309:1: note: in expansion of macro 'PP' > 4309 | PP(pp_aslice) > | ^~ > pp.h:11:20: warning: 'Perl_pp_fc' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:4154:1: note: in expansion of macro 'PP' > 4154 | PP(pp_fc) > | ^~ > pp.h:11:20: warning: 'Perl_pp_quotemeta' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:4080:1: note: in expansion of macro 'PP' > 4080 | PP(pp_quotemeta) > | ^~ > pp.h:11:20: warning: 'Perl_pp_lc' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:3948:1: note: in expansion of macro 'PP' > 3948 | PP(pp_lc) > | ^~ > pp.h:11:20: warning: 'Perl_pp_uc' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:3705:1: note: in expansion of macro 'PP' > 3705 | PP(pp_uc) > | ^~ > pp.h:11:20: warning: 'Perl_pp_ucfirst' defined but not used [-Wunused-function] > 11 | #define PP(s) OP * Perl_##s(pTHX) > | ^~~~~ > pp.c:3465:1: note: in expansion of macro 'PP' > 3465 | PP(pp_ucfirst) > | ^~ > make[1]: *** [makefile:253: pp.o] Error 1 > make[1]: Leaving directory '/home/XXXXX/perl-5.16.3' > make: *** [makefile:535: install] Error 2 > [root@stag1 perl-5.16.3]#
melian

2024/04/22 10:25

エラーメッセージの、 pp.c:3402: error: unterminated #ifdef が少し気掛かりです。もしかすると、パッチの #endif を付け忘れているのかもしれません。 パッチに書かれているコメントでは "work around glibc-2.2.5 bug" となっていますので、glibc の古いバージョンへの対応です。つまり、現行の glibc 3.x では不要な処理なので、元のコードの 3430 行目をコメントアウトしても結果は同じ、ということになります。3430行だけをコメントアウトして、もう一度ビルドしてみてください。 // PL_reentrant_buffer->_crypt_struct_buffer->current_saltbits = 0;
faki

2024/04/22 10:37

コメントありがとうございます。 3430行目としてコメント頂いた下記をコメントアウトしました。 > // PL_reentrant_buffer->_crypt_struct_buffer->current_saltbits = 0; ただ状態としては上述と同じ出力でエラーとなっているようでした。 後半のwarningとnote部分を罰すした内容を以下に記載させていただきます。 > [root@stag1 perl-5.16.3]# make install > make install.perl install.man STRIPFLAGS= DESTDIR="" > make[1]: Entering directory '/home/XXXXXXXXXX/perl-5.16.3' > `sh cflags "optimize='-O2 -g'" pp.o` pp.c > CCCMD = cc -DPERL_CORE -c -D_REENTRANT -D_GNU_SOURCE -fpcc-struct-return -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -Wall > pp.c: In function 'Perl_pp_crypt': > pp.c:4505:1: error: invalid storage class for function 'S_do_delete_local' > 4505 | S_do_delete_local(pTHX) > | ^~~~~~~~~~~~~~~~~ > pp.c:4935:1: error: invalid storage class for function 'S_deref_plain_array' > 4935 | S_deref_plain_array(pTHX_ AV *ary) > | ^~~~~~~~~~~~~~~~~~~ > pp.c: At top level: > pp.c:3402: error: unterminated #ifdef > 3402 | #ifdef HAS_CRYPT > | > In file included from perl.h:5030, > from pp.c:28: > proto.h:6001:17: warning: 'S_do_delete_local' declared 'static' but never defined [-Wunused-function] > 6001 | STATIC OP* S_do_delete_local(pTHX); > | ^~~~~~~~~~~~~~~~~ > 中略 > pp.c:3465:1: note: in expansion of macro 'PP' > 3465 | PP(pp_ucfirst) > | ^~ > make[1]: *** [makefile:253: pp.o] Error 1 > make[1]: Leaving directory '/home/XXXXX/perl-5.16.3' > make: *** [makefile:535: install] Error 2 > [root@stag1 perl-5.16.3]#
melian

2024/04/22 10:55

手元の環境(Ubuntu 23.10, gcc 13.2.0, glibc 2.38)では問題の行をコメントアウトするとビルドすることができました。 > error: invalid storage class for function と表示されていることを考慮すると、C コンパイラ(おそらく gcc かと思われますが)のバージョンの問題かもしれません。cc --version の実行結果を教えてもらえますか?
faki

2024/04/22 11:04

コメントありがとうございます。 まず1点謝罪させてください。 最初のpp.cの修正ですが、 >★ PL_reentrant_buffer->_crypt_struct_buffer->current_saltbits = 0; 上記行の直後のendifの構文1行分の追記漏れをしておりました。 せっかくご助言いただいているなかでしょうもないミスをしており大変申し訳ないです。 該当箇所を修正(=追記)しなおし、 更にアドバイス頂いた上記の★もコメントアウトした結果、以下の結果に変化しました。 > [root@stag1 perl-5.16.3]# make install > make install.perl install.man STRIPFLAGS= DESTDIR="" > make[1]: Entering directory '/home/XXXXX/perl-5.16.3' > `sh cflags "optimize='-O2 -g'" pp.o` pp.c > CCCMD = cc -DPERL_CORE -c -D_REENTRANT -D_GNU_SOURCE -fpcc-struct-return -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g -Wall > pp.c:6038:1: error: expected identifier or '(' before '}' token > 6038 | } > | ^ > make[1]: *** [makefile:253: pp.o] Error 1 > make[1]: Leaving directory '/home/XXXXX/perl-5.16.3' > make: *** [makefile:535: install] Error 2 > [root@stag1 perl-5.16.3]# またcc --versionの実施結果は以下となります。 > [root@stag1 perl-5.16.3]# cc --version > cc (GCC) 11.4.1 20230605 (Red Hat 11.4.1-2) > Copyright (C) 2021 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > [root@stag1 perl-5.16.3]#
faki

2024/04/22 11:12

更に、上記で自主的に一度修正した以下を元に戻しmakeを実施したところ、 エラー無く最後まで進みました。 make installについても無事に完了し、 最後には以下の出力と、存在していなかったperlのコマンドがtabの予測変換でも出てくるようになりました! > /usr/share/man/man1/s2p.1 > /usr/share/man/man1/psed.1 > make[1]: Leaving directory '/home/XXXXXXX/perl-5.16.3' > [root@stag1 perl-5.16.3]# > [root@stag1 perl-5.16.3]# pe > peekfd perl perl5.16.3 perlbug perldoc perlivp perlthanks pethtool > [root@stag1 perl-5.16.3]# (切り戻し内容) >再実施時のエラーのうち、 内容の以下に合わせて、pp.cの6038行目に}を追加し、エラー内容1件は解決しました。 > pp.c:6037:1: error: expected declaration or statement at end of input > 6037 | } > | ^
faki

2024/04/22 11:15

現在ですが、以下の通りperlのバージョンも正しく認識しているように見えております。 > [root@stag1 perl-5.16.3]# perl -v > > This is perl 5, version 16, subversion 3 (v5.16.3) built for x86_64-linux-thread-multi > > Copyright 1987-2012, Larry Wall melianさん、長々と対応にご助力いただき本当にありがとうございます!
melian

2024/04/22 11:20 編集

コメントが入れ違いになってしまいました。解決できてなによりです。
faki

2024/04/22 11:26

ご助力なかったらここまでたどり着けなかったので本当にありがたいです! 差し支えなければベストアンサーに選ばせていただきたいのですが、 「2024/04/22 18:22」にコメント頂いた内容を回答欄に投稿いただけくことはできますでしょうか?
guest

回答2

0

ベストアンサー

※ コメントから転記

エラーメッセージで検索してみると、GitHub リポジトリの issues に報告が上がっていることが判りました。

Perl fails to build with libxcrypt · Issue #16573 · Perl/perl5

同じページでパッチが提示されています。(古いバージョンの glibc に対応するパッチなので、エラーが発生する行をコメントアウトしてもよいかと思います)

c

1--- a/pp.c 2+++ b/pp.c 3@@ -3650,8 +3650,12 @@ PP(pp_crypt) 4 #if defined(__GLIBC__) || defined(__EMX__) 5 if (PL_reentrant_buffer->_crypt_struct_buffer) { 6 PL_reentrant_buffer->_crypt_struct_buffer->initialized = 0; 7- /* work around glibc-2.2.5 bug */ 8+#if (defined(__GLIBC__) && __GLIBC__ == 2) && \ 9+ (defined(__GLIBC_MINOR__) && __GLIBC_MINOR__ >= 2 && __GLIBC_MINOR__ < 4) 10+ /* work around glibc-2.2.5 bug, has been fixed at some 11+ * time in glibc-2.3.X */ 12 PL_reentrant_buffer->_crypt_struct_buffer->current_saltbits = 0; 13+#endif 14 } 15 #endif 16 } 17--

投稿2024/04/22 11:31

melian

総合スコア19825

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

faki

2024/04/22 11:36

おかげさまで無事解決となります。 ベストアンサーに選ばせて頂きました。
guest

0

perl5.16.3は10年以上前のリリースで、それを最新のRHEL9にソースから入れるのはけっこう大変じゃないでしょうか。

Dockerなどの仮想環境でCentOS7とかちょっと古めのOS入れれば、おそらくperl5.16.3のRPMパッケージが存在してるのでインストールも苦労しないと思います。まずはそちらの方法を検討された方が現実的じゃないかと思います。CentOS7のサポート期限がそろそろ切れるのは要注意ですが。

追記
今回は用件から外れるということですが、perl5.16.3の公式Dockerイメージは存在してました。
https://hub.docker.com/layers/library/perl/5.16.3/images/sha256-fceacae7fd58490e9e87e956b0abb0e01060aea4ab8e7f619ab563fe91706783?context=explore

投稿2024/04/22 09:26

編集2024/04/22 10:53
AbeTakashi

総合スコア4556

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

faki

2024/04/22 09:45

AbeTakashiさん お気遣いありがとうございます。 ただ内部での要件的にOSもPerlのバージョンも変えられず、仕方なくといった具合です。 元々ちょっと古めのCentOSで動いており、今回入れ替えで今回の形にならざるを得なくなり。。。
AbeTakashi

2024/04/22 10:35

要件的に大変そうですね。ちょっとした対応だけでビルドが通って検証作業ができればいいですが、perlにパッチを当てたり大幅に手を入れてしまったりすると、そのパッチや対応内容に不具合が本当にないかどうかみたいな検証も必要になり「バージョンを合わせるとは何か?」みたいな問題にもなりますよね。急がば回れで、RHEL9で安定して稼働するようにPerl側の改修および検証作業した方が早い可能性もあります。そういう場合の開発や検証の手段としてDockerを活用することも検討されても良いかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問