readelf가 올바른 버전의 기호를 표시하지만 컴파일된 바이너리를 실행할 때 정의되지 않은 기호

readelf가 올바른 버전의 기호를 표시하지만 컴파일된 바이너리를 실행할 때 정의되지 않은 기호

여기 지침에 따라 vagrant-libvirt 플러그인을 컴파일했습니다. https://github.com/hashicorp/vagrant/issues/7039#issuecomment-488499883

컴파일은 잘 되지만 실행하면 다음과 같은 오류가 발생합니다.

3: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
2: from /home/manu/.vagrant.d/gems/2.6.6/gems/ruby-libvirt-0.7.1/lib/libvirt.rb:11:in `<top (required)>'
1: from /opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/opt/vagrant/embedded/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': /usr/lib64/libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b - /home/manu/.vagrant.d/gems/2.6.6/gems/ruby-libvirt-0.7.1/lib/_libvirt.so (LoadError)

그러나 확인하면 /usr/lib64/libk5crypto.so.3다음 기호를 내보냅니다.

$ readelf -Ws /usr/lib64/libk5crypto.so.3 | grep EVP_KDF_ctrl
5: 0000000000000000     0 FUNC    GLOBAL DEFAULT  UND EVP_KDF_ctrl@OPENSSL_1_1_1b (5)

반면에 내 시스템(RHEL 8)에는 openssl 1.1.1c가 설치되어 있습니다.

rpm -qa | grep openssl
openssl-1.1.1c-15.el8.x86_64
openssl-pkcs11-0.4.10-2.el8.x86_64
openssl-libs-1.1.1c-15.el8.x86_64
xmlsec1-openssl-1.2.25-4.el8.x86_64
openssl-devel-1.1.1c-15.el8.x86_64

여기서 어떤 문제를 해결해야 합니까? 잘못된 라이브러리를 설치했나요? 잘못된 ld 플래그를 설정하고 경로를 포함했습니까?

관련 정보