저는 AIX 운영 체제 중 하나에 Python 3.9를 설치하고 실행하려고 합니다.
Python 3.9를 설치하기 위해 yum을 사용했습니다.
Current OS Level:
root@our_AIX_host:/opt/freeware/libexec > oslevel -s
7100-05-11-2246
처음에는 PATH 및 LIBPATH에 추가하여 수정해야 했던 몇 가지 해결되지 않은 경로 문제가 있었습니다.
root@our_AIX_host:/opt/freeware/libexec > echo $LIBPATH
/usr/lib:/usr/local/lib:/opt/freeware/lib64
root@our_AIX_host:/opt/freeware/libexec > echo $PATH
/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/java8_64/jre/bin:/usr/java8_64/bin:/usr/local/bin:/erac/sysadmin/roster/bin:/usr/local/bin:/etc/emc/bin:/opt/LicenseUseManagement/bin:/opt/freeware/bin
python3을 실행하려고 하면:
root@our_AIX_host:/opt/freeware/libexec > python3
exec(): 0509-036 Cannot load program python3 because of the following errors:
0509-130 Symbol resolution failed for /usr/lib/libpython3.9.a[libpython3.9.so] because:
0509-136 Symbol _GLOBAL__AIXI_libintl_so (number 284) is not exported from
dependent module /usr/lib/libintl.a[libintl.so.8].
0509-136 Symbol _GLOBAL__AIXD_libintl_so (number 285) is not exported from
dependent module /usr/lib/libintl.a[libintl.so.8].
0509-026 System error: Error 0
0509-192 Examine .loader section symbols with the
'dump -Tv' command.
dnf가 yum의 후속이라는 것을 알고 "dnf_aixtoolbox.sh"를 사용하여 dnf를 설치했습니다. dnf를 실행하려고 하면 다음과 같은 결과가 발생합니다.
root@our_AIX_host:/opt/freeware/libexec > dnf
exec(): 0509-036 Cannot load program /opt/freeware/libexec/python3.9_32 because of the following errors:
0509-130 Symbol resolution failed for /usr/lib/libpython3.9.a(libpython3.9.so) because:
0509-136 Symbol _GLOBAL__AIXI_libintl_so (number 281) is not exported from
dependent module /usr/opt/rpm/lib/libintl.a(libintl.so.8).
0509-136 Symbol _GLOBAL__AIXD_libintl_so (number 282) is not exported from
dependent module /usr/opt/rpm/lib/libintl.a(libintl.so.8).
0509-026 System error: Error 0
0509-192 Examine .loader section symbols with the
'dump -Tv' command.
아래 코드를 실행했는데 솔직히 여기서 출력 문제를 해결하는 방법을 이해하지 못합니다. 나는 "libintl.so.8"이 위의 두 출력 사이의 공통점이라는 것을 알고 있지만 그것이 나에게 말하려는 것이 정확히 무엇인지 이해하지 못합니다.
root@our_AIX_host:/opt/freeware/libexec > dump -Tv -X32_64 python3
총 1700줄이 있으므로 위 명령 출력의 마지막 10줄을 포함했습니다. 필요한 경우 더 많은 정보를 제공할 수 있습니다.
[1670] 0x00000000 undef ImpExp DS EXTref libpython3.9.a(libpython3.9.so) _Py_Sigset_Converter
[1671] 0x00000000 undef ImpExp DS EXTref libpython3.9.a(libpython3.9.so) _PyErr_CheckSignals
[1672] 0x00000000 undef ImpExp DS EXTref libpython3.9.a(libpython3.9.so) PyErr_SetInterrupt
[1673] 0x00000000 undef ImpExp DS EXTref libpython3.9.a(libpython3.9.so) PyOS_InitInterrupts
[1674] 0x00000000 undef ImpExp DS EXTref libpython3.9.a(libpython3.9.so) PyOS_InterruptOccurred
[1675] 0x00000000 undef ImpExp DS EXTref libpython3.9.a(libpython3.9.so) _PyOS_IsMainThread
[1676] 0x00000000 undef ImpExp DS EXTref libpython3.9.a(libpython3.9.so) PyTraceMalloc_Track
[1677] 0x00000000 undef ImpExp DS EXTref libpython3.9.a(libpython3.9.so) PyTraceMalloc_Untrack
[1678] 0x00000000 undef ImpExp DS EXTref libpython3.9.a(libpython3.9.so) _PyTraceMalloc_GetTraceback
[1679] 0x00000000 undef IMP DS EXTref libintl.a(libintl.so.8) _GLOBAL__AIXI_libintl_so
[1680] 0x00000000 undef IMP DS EXTref libintl.a(libintl.so.8) _GLOBAL__AIXD_libintl_so
[1681] 0x20000ff8 .data ENTpt DS SECdef [noIMid] __start
도움을 주셔서 미리 감사드립니다.
답변1
현재 삭제된 댓글에서로린치 지그문트:
LIBPATH를 재정렬해 볼 수 있습니다.
/usr/local/lib:/opt/freeware/lib64:/usr/lib