Компиляция perl >5.10 в AIX версии 5.3

Я компилировал OpenSSL (и, следовательно, Perl >5.10, поскольку это зависимость) на нескольких платформах. Мне удалось собрать 1.1.0b на каждой платформе, кроме AIX, которую я даже не могу скомпилировать в Perl. Я перепробовал несколько версий и посмотрел документацию, которую Perl предоставляет онлайн. Из того, что я могу сказать, он предлагает версию 5.12.2.

Когда я пытаюсь скомпилировать версию 5.12.2,

Я взял следующее из документации и заполнил несколько локальных системных переменных, таких как XLC rv7.

 export OBJECT_MODE=64

 ./Configure \
  -d \
  -Dcc=/usr/vac/bin/xlc_r7 \
  -Duseshrplib \
  -Duse64bitall \
  -Dprefix=`pwd`/../PERL

Затем я пытаюсь сделать как предложено, и получаю следующую ошибку:

        /usr/vac/bin/xlc_r7 -q64 -o miniperl -brtl -bdynamic -L/usr/local/lib -b64    gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o    miniperlmain.o opmini.o perlmini.o -lbind -lnsl -ldl -lld -lm -lcrypt -lc
        LIBPATH=.../perl-5.12.2  ./miniperl -w -Ilib -MExporter -e '<?>' || make minitest
        LIBPATH=.../perl-5.12.2  ./miniperl -Ilib autodoc.pl
        /usr/bin/ln -s perl5122delta.pod pod/perldelta.pod
        LIBPATH=.../perl-5.12.2  ./miniperl -Ilib -Icpan/Cwd -Icpan/Cwd/lib pod/perlmodlib.PL -q
readdir(./../../../../..): Bad file number at lib/FindBin.pm line 116
stat(/pod/): No such file or directory at lib/FindBin.pm line 197
stat(/pod/): No such file or directory at lib/FindBin.pm line 200
Use of chdir('') or chdir(undef) as chdir() is deprecated at pod/perlmodlib.PL line 9.
No such file or directory at pod/perlmodlib.PL line 19.
make: The error code from the last command is 2.

Взглянув на pod/perlmodlib.PL, мы увидим следующее:

# MANIFEST itself is Unix style filenames, so we have to assume that Unix style
# filenames will work.

open (MANIFEST, "../MANIFEST") or die $!;

В своем отчаянии я попытался взломать его и избежать записи в манифест, но потом я получил эту проблему:

Creating Makefile.PL in cpan/Archive-Extract for Archive::Extract

Running Makefile.PL in cpan/Archive-Extract
../../miniperl Makefile.PL INSTALLDIRS=perl INSTALLMAN1DIR=none INSTALLMAN3DIR=none PERL_CORE=1 LIBPERL_A=libperl.a
readdir(./../../../../../../..): No such file or directory at ../../lib/File/Find.pm line 610
Use of chdir('') or chdir(undef) as chdir() is deprecated at ../../lib/File/Find.pm line 773.
readdir(./../../..): No such file or directory at ../../cpan/Cwd/lib/File/Spec/Unix.pm line 483
Could not open 'lib/Archive/Extract.pm': No such file or directory at ../../cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm line 2588.
512 from cpan/Archive-Extract's Makefile.PL at make_ext.pl line 390.
Warning: No Makefile!
make: Cannot find a rule to create target config from dependencies.
Stop.
 make config PERL_CORE=1 LIBPERL_A=libperl.a failed, continuing anyway...
Making all in cpan/Archive-Extract
 make all PERL_CORE=1 LIBPERL_A=libperl.a
make: Cannot find a rule to create target all from dependencies.
Stop.
Unsuccessful make(cpan/Archive-Extract): code=512 at make_ext.pl line 449.
make: The error code from the last command is 2.

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

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

Can't locate strict.pm in @INC (you may need to install the strict module) (@INC contains: /cpan/AutoLoader/lib /dist/Carp/lib /dist/PathTools /dist/PathTools/lib /cpan/ExtUtils-Install/lib /cpan/ExtUtils-MakeMaker/lib /cpan/ExtUtils-Manifest/lib /cpan/File-Path/lib /ext/re /dist/Term-ReadLine/lib /dist/Exporter/lib /ext/File-Find/lib /cpan/Text-Tabs/lib /dist/constant/lib /cpan/version/lib /lib .) at autodoc.pl line 25.
BEGIN failed--compilation aborted at autodoc.pl line 25.
make: The error code from the last command is 2.

То, что я знаю из других сборников, означает, что мне нужно отредактировать переменную PERL5LIB.

Если я продолжу добавлять все модули в путь:

export PERL5LIB=`pwd`/dist/Exporter/lib:$PERL5LIB
export PERL5LIB=`pwd`/cpan/Text-Tabs/lib:$PERL5LIB
export PERL5LIB=`pwd`/ext/re:$PERL5LIB
export PERL5LIB=`pwd`/dist/constant/lib:$PERL5LIB
export PERL5LIB=`pwd`/cpan/ExtUtils-MakeMaker/lib:$PERL5LIB
export PERL5LIB=`pwd`/dist/Carp/lib:$PERL5LIB
export PERL5LIB=`pwd`/cpan/File-Path/lib:$PERL5LIB
export PERL5LIB=`pwd`/dist/PathTools:$PERL5LIB
export PERL5LIB=`pwd`/dist/PathTools/lib:$PERL5LIB
export PERL5LIB=`pwd`/ext/File-Find/lib:$PERL5LIB

Тем не менее, я все равно получу сообщение об ошибке для модуля, которого нет даже в источнике 5.24.0!

Can't locate ExtUtils/MakeMaker/version/vpp.pm in @INC (you may need to install the ExtUtils::MakeMaker::version::vpp module) (@INC contains: <removed from post>) at (eval 2) line 2.
BEGIN failed--compilation aborted at (eval 2) line 2.
Compilation failed in require at .../perl-5.24.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm line 10.
BEGIN failed--compilation aborted at .../perl-5.24.0/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm line 10.
Compilation failed in require at Makefile.PL line 7.
BEGIN failed--compilation aborted at Makefile.PL line 7.
Unsuccessful Makefile.PL(cpan/Archive-Tar): code=512 at make_ext.pl line 517.
make: The error code from the last command is 2.

У меня есть MakeMaker, но версия 5.24 не содержит vpp.pm! Опять же, в отчаянии я попытался поместить его туда из другого источника, и я получаю эту ошибку:

        LIBPATH=.../perl-5.24.0 ./miniperl -Ilib make_ext.pl cpan/Archive-Tar/pm_to_blib  MAKE="make" LIBPERL_A=libperl.a
readdir(./../../../../../../..): No such file or directory at .../perl-5.24.0/ext/File-Find/lib/File/Find.pm line 142.
Can't cd to : No such file or directory
Unsuccessful Makefile.PL(cpan/Archive-Tar): code=512 at make_ext.pl line 517.
make: The error code from the last command is 2.

Все это заставляет меня чувствовать, что, возможно, я что-то не так настраиваю... Может ли кто-нибудь с некоторым опытом помочь мне с некоторыми инструкциями по установке Perl на AIX? Я был бы очень благодарен. Спасибо!

Ниже приведена информация о моей системе:

> prtconf
System Model: IBM,8231-E1D
Machine Serial Number: Not Available
Processor Type: Not Available
Processor Implementation Mode: POWER 7
Processor Version: PV_7_Compat
Number Of Processors: 0
Processor Clock Speed: Not Available
CPU Type: 64-bit
Kernel Type: 64-bit
Memory Size: 10240 MB
Good Memory Size: Not Available
Platform Firmware level: Not Available
Firmware Version: IBM,AL770_092
Console Login: disable
Auto Restart: true
Full Core: false

1 ответ

Я часто опускаю и компилирую openssh и openssl. Я использую gcc и никакой реальной магии, которую я могу вспомнить.

Вот мой скрипт для его построения. Я не знаю, какой Perl является родным для AIX, но, похоже, он мне подходит.

https://github.com/pedz/aix-build-scripts/blob/master/build-scripts/build-openssl

Другие вопросы по тегам