AIX5.3执行perl报错,以及编译openssl64位

328 阅读1分钟

本文仅记录问题和尝试解决的过程,希望能给遇到同样问题的伙伴提供帮助。

编译openssl需要perl工具。

root@p520:# /opt/freeware/bin//perl
exec(): 0509-036 Cannot load program /opt/freeware/bin//perl because of the following errors:
0509-022 Cannot load module /opt/freeware/lib/perl5/5.8.8/ppc-thread-multi/CORE/libperl.a(libperl.o).
0509-150   Dependent module /opt/freeware/lib/libgcc_s.a(shr.o) could not be loaded.
0509-103   The module has an invalid magic number.
0509-022 Cannot load module perl.
0509-150   Dependent module /opt/freeware/lib/perl5/5.8.8/ppc-thread-multi/CORE/libperl.a(libperl.o) could not be loaded.
0509-022 Cannot load module .

\

而/usr/bin/perl 则无问题。

问题排查:

whereis perl 显示/usr/bin/perl

继续排查:

echo $PATH

/usr/vac/bin:/usr/vacpp/bin:/opt/freeware/bin/:/opt/freeware/sbin/:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java14/jre/bin:/usr/java14/bin://bin:/usr/local/bin

将结果中的分号替换为  /perl\r\n, 得到

/usr/vac/bin/perl
/usr/vacpp/bin/perl
/opt/freeware/bin//perl
/opt/freeware/sbin//perl
/usr/bin/perl
/etc/perl
/usr/sbin/perl
/usr/ucb/perl
/usr/bin/X11/perl
/sbin/perl
/usr/java14/jre/bin/perl
/usr/java14/bin/perl
//bin/perl
/usr/local/bin/perl

将上面内容复制到SSH登录窗口中执行。

可以看到是/opt/freeware/sbin/perl造成的。

\

继续查看这些文件之间的关系:

root@p520:# ls -al /opt/freeware/bin//perl
-rwxr-xr-x  2 root system 96131 2010-01-15 04:34 /opt/freeware/bin//perl


root@p520:# ls -al /usr/bin/perl
lrwxrwxrwx  1 root system 28 2019-12-26 10:38 /usr/bin/perl -> /usr/opt/perl5/bin/perl5.8.8
root@p520:# ls -al /usr/opt/perl5/bin/perl5.8.8
-rwxr-xr-x  2 root system 147543 2009-06-03 17:56 /usr/opt/perl5/bin/perl5.8.8

\

重命名:

mv /opt/freeware/bin/perl /opt/freeware/bin/perl_bk

再次执行perl:

root@p520:# perl
-bash: /opt/freeware/bin/perl: A file or directory in the path name does not exist.

\

咱也链接上:

ln -s /usr/opt/perl5/bin/perl5.8.8 /opt/freeware/bin/perl

\

[root@qocalhost openssl-1.0.2u]# ./config --prefix=/opt/i2lib/openssl-1.0.x
Operating system: 00CEC1644C00-ibm-aix
WARNING! If you wish to build 64-bit kit, then you have to
invoke './Configure aix64-cc' manually.
You have ~5 seconds to press Ctrl-C to abort.

\

执行了./Configure aix64-cc'后,再次./config,依然有以上提示。

直接修改config, vim config, 搜索aix-cc

将提示项附近的OUT="aix-cc"改为OUT="aix64-cc"

 OUT="aix-cc"
if [ KERNELBITSeq64];then         echo"WARNING!Ifyouwishtobuild64bitkit,thenyouhaveto"         echo"    invoke./Configureaix64ccmanually."         if["KERNEL_BITS -eq 64 ]; then\                 echo "WARNING! If you wish to build 64-bit kit, then you have to"\                 echo "         invoke './Configure aix64-cc' *manually*."\                 if [ "TEST" = "false" -a -t 1 ]; then
echo "         You have ~5 seconds to press Ctrl-C to abort."
(trap "stty stty -g" 2 0; stty -icanon min 0 time 50; read waste) <&1
fi
fi