Я пытаюсь собрать gdal==3.4.1 из исходного кода на Redhat UBI8.6 с conda в среде python 3.8 и proj 8.2.1, используя следующее:
./configure --prefix=$CONDA_PREFIX --with-netcdf=$CONDA_PREFIX --with-proj=$CONDA_PREFIX --with-curl=no
make -j 24 > /dev/null
make install > /dev/null
Но независимо от того, меняю ли я версию gdal на последнюю или более старую, я продолжаю получать ошибку компоновщика между libk5crypto
и libssh
с openssl
.
[01:54:25][root@name]# где находится openssl
openssl: /usr/bin/openssl /usr/include/openssl /root/anaconda3/envs/myenv/bin/openssl /usr/share/man/man1/openssl.1ssl.gz
$ об/мин -q openssl openssl-1.1.1k-7.el8_6.x86_64 $ об/мин -q openssh openssh-8.0p1-13.el8.x86_64
Вывод ошибки:
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_ctrl@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_CTX_free@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_CTX_new_id@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_derive@OPENSSL_1_1_1b'
collect2: error: ld returned 1 exit status
make[1]: *** [GNUmakefile:89: gdalinfo] Error 1
make[1]: *** Waiting for unfinished jobs....
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_ctrl@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_CTX_free@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_CTX_new_id@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_derive@OPENSSL_1_1_1b'
collect2: error: ld returned 1 exit status
make[1]: *** [GNUmakefile:110: nearblack] Error 1
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_ctrl@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_CTX_free@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_CTX_new_id@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_derive@OPENSSL_1_1_1b'
collect2: error: ld returned 1 exit status
make[1]: *** [GNUmakefile:92: gdalmdiminfo] Error 1
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_ctrl@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_CTX_free@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_CTX_new_id@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_derive@OPENSSL_1_1_1b'
collect2: error: ld returned 1 exit status
make[1]: *** [GNUmakefile:113: gdalmanage] Error 1
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_ctrl@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_CTX_free@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_CTX_new_id@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_derive@OPENSSL_1_1_1b'
collect2: error: ld returned 1 exit status
make[1]: *** [GNUmakefile:122: gdalbuildvrt] Error 1
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_ctrl@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_CTX_free@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_CTX_new_id@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_derive@OPENSSL_1_1_1b'
collect2: error: ld returned 1 exit status
make[1]: *** [GNUmakefile:104: gdalwarp] Error 1
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_ctrl@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_CTX_free@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_CTX_new_id@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_derive@OPENSSL_1_1_1b'
collect2: error: ld returned 1 exit status
make[1]: *** [GNUmakefile:191: gdal_viewshed] Error 1
make: *** [GNUmakefile:123: apps-target] Error 2
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_ctrl@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_CTX_free@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_CTX_new_id@OPENSSL_1_1_1b'
/usr/lib64/libssh.so.4: undefined reference to `EVP_KDF_derive@OPENSSL_1_1_1b'
collect2: error: ld returned 1 exit status
make[1]: *** [GNUmakefile:89: gdalinfo] Error 1
make: *** [GNUmakefile:123: apps-target] Error 2
Я больше не знаю, что вызывает эту проблему, и я не могу найти какое-либо решение в Интернете. Обращение, чтобы узнать, есть ли у кого-нибудь какое-либо решение, советы, ключ к разгадке того, что происходит.
Это не проблема GDAL, в вашем /usr/lib64/libssh.so.4
отсутствуют ссылки. Либо он скомпилирован с отсутствующей библиотекой OpenSSL, либо эта библиотека OpenSSL отсутствует в пути связывания GDAL. Возможно, вам не хватает обновлений безопасности или у вас может быть установлено несколько библиотек OpenSSL.
Спасибо. Я обновил conda env, и это, похоже, решило проблему.