Якщо ви невдало поесперементували з mediator’ом openssl і отримали щось, на зразок такого:
root@old:~# bootadm list-menu Traceback (most recent call last): File "/usr/lib/python3.7/vendor-packages/bootadm-helper.py", line 29, in from bemgmt import BEManager File "/usr/lib/python3.7/vendor-packages/bemgmt/__init__.py", line 45, in from bemgmt.be import USERPROP_ZONE_PARENTBE, ALLOWED_POLICIES, \ File "/usr/lib/python3.7/vendor-packages/bemgmt/be.py", line 22, in from bemgmt.utils import get_be_pool_and_name, get_mountpoint_from_vfstab, \ File "/usr/lib/python3.7/vendor-packages/bemgmt/utils.py", line 20, in from bemgmt.zfs_rad import ZfsRad File "/usr/lib/python3.7/vendor-packages/bemgmt/zfs_rad.py", line 17, in import rad.connect as radcon File "/usr/lib/python3.7/vendor-packages/rad/connect.py", line 21, in import ssl File "/usr/lib/python3.7/ssl.py", line 98, in import _ssl # if we can't import it, let the error propagate ImportError: ld.so.1: bootadm: relocation error: file /usr/lib/python3.7/lib-dynload/_ssl.cpython-37m.so: symbol GENERAL_NAME_free: referenced symbol not found bootadm: Unable to load python helper module
де взагалі нічого не працює, навіть, pkg, то це дуже погано (КО). Вирішити це достатньо просто: в кінці виводу є скарга на бібліотеку /usr/lib/python3.7/lib-dynload/_ssl.cpython-37m.so. Подивимося її залежність:
oot@old:~# ldd /usr/lib/python3.7/lib-dynload/_ssl.cpython-37m.so libssl.so.1.0.0 => (file not found) libcrypto.so.1.0.0 => (file not found) libpython3.7m.so.1.0 => /usr/lib/64/libpython3.7m.so.1.0 libc.so.1 => /lib/64/libc.so.1 libm.so.2 => /lib/64/libm.so.2
Бачимо, що кудись ділись libssl, libcrypto. Порівняємо з видачею з робочого серверу:
root@work-server# ldd /usr/lib/python3.7/lib-dynload/_ssl.cpython-37m.so libssl.so.1.0.0 => /lib/64/libssl.so.1.0.0 libcrypto.so.1.0.0 => /lib/64/libcrypto.so.1.0.0 libpython3.7m.so.1.0 => /usr/lib/64/libpython3.7m.so.1.0 libc.so.1 => /lib/64/libc.so.1 libm.so.2 => /lib/64/libm.so.2
Виправляємо цю ситуацію і перевіряємо роботу:
root@old:~# cd /lib/64/ root@old:/lib/64# ln -s ../openssl/default/amd64/libssl.so.1.0.0 root@old:/lib/64# ln -s ../openssl/default/amd64/libcrypto.so.1.0.0 root@old:/lib/64# ldd /usr/lib/python3.7/lib-dynload/_ssl.cpython-37m.so libssl.so.1.0.0 => /lib/64/libssl.so.1.0.0 libcrypto.so.1.0.0 => /lib/64/libcrypto.so.1.0.0 libpython3.7m.so.1.0 => /usr/lib/64/libpython3.7m.so.1.0 libc.so.1 => /lib/64/libc.so.1 libm.so.2 => /lib/64/libm.so.2 root@old:/lib/64# # bootadm list-menu The location of the boot loader configuration files is: /rpool/boot/grub default 0 console text timeout 10 0 11.4.37.101.1