Динамическое связывание openssl из Cross.toml требует во время выполнения libssl1.0.0, которого больше не существуетLinux

Anonymous
Динамическое связывание openssl из Cross.toml требует во время выполнения libssl1.0.0, которого больше не существует

Сообщение Anonymous »

В моем проекте мне нужно использовать openssl не для HTTP-части моего приложения, а потому, что мне нужно декодировать подписанный файл.
Я добавил в свой Cargo.toml:
openssl = { version = "0.10.66", default-features = false }

и Cross.toml:
[target.aarch64-unknown-linux-gnu]
pre-build = [
"dpkg --add-architecture $CROSS_DEB_ARCH",
"apt-get update && apt-get install --assume-yes libssl-dev:$CROSS_DEB_ARCH",
]

Когда я запускаю кросс, он строится, но когда исполняемый файл --release запускается на компьютере с Debian 12 с установленным openssl, возникает ошибка:
error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory

Почему он привязан к libssl.so.1.0.0, а не к последним версиям?
На компьютере установлен openssl это:
openssl version -a

OpenSSL 3.0.14 4 Jun 2024 (Library: OpenSSL 3.0.14 4 Jun 2024)
built on: Sun Sep 1 14:59:10 2024 UTC
platform: debian-arm64
options: bn(64,64)
compiler: gcc -fPIC -pthread -Wa,--noexecstack -Wall -fzero-call-used-regs=used-gpr -DOPENSSL_TLS_SECURITY_LEVEL=2 -Wa,--noexecstack -g -O2 -ffile-prefix-map=/build/reproducible-path/openssl-3.0.14=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
OPENSSLDIR: "/usr/lib/ssl"
ENGINESDIR: "/usr/lib/aarch64-linux-gnu/engines-3"
MODULESDIR: "/usr/lib/aarch64-linux-gnu/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_armcap=0xbd

Если я использую ldd, я получаю следующее:
ldd executable
linux-vdso.so.1 (0x0000ffffb51f0000)
libssl.so.1.0.0 => not found
libcrypto.so.1.0.0 => not found
libgcc_s.so.1 => /lib/aarch64-linux-gnu/libgcc_s.so.1 (0x0000ffffb3fe0000)
libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000ffffb3fb0000)
libm.so.6 => /lib/aarch64-linux-gnu/libm.so.6 (0x0000ffffb3f10000)
libdl.so.2 => /lib/aarch64-linux-gnu/libdl.so.2 (0x0000ffffb3ee0000)
libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000ffffb3d30000)
/lib/ld-linux-aarch64.so.1 (0x0000ffffb51b3000)


Подробнее здесь: https://stackoverflow.com/questions/790 ... hich-doesn

Вернуться в «Linux»