使用 vagrant 时出现 openssl 和 ruby​​ 错误

使用 vagrant 时出现 openssl 和 ruby​​ 错误

我用CentOS 8.4, libvirtd (libvirt) 6.0.0, Vagrant 2.2.18, gem version 2.7.6.3 and ruby 2.5.9p229 (2021-04-05 revision 67939) [x86_64-linux]

我正在尝试使用 vagrant 在 Qemu/KVM 上构建 VM。从技术上讲,KVM 运行良好,我可以手动创建 VM。只是,我无法使用 vagrant 创建虚拟机。我为 libvirt 安装了 vagrant 和 vagrant 插件。版本是:vagrant-libvirt (0.5.3, global)

我尝试使用此命令启动 vagrantvagrant up --provider=libvirt并收到错误

/usr/lib64/libk5crypto.so.3:未定义符号:EVP_KDF_ctrl,版本 OPENSSL_1_1_1b - /home/user/.vagrant.d/gems/2.7.4/gems/ruby-libvirt-0.7.1/lib/_libvirt.so (加载错误

我使用 OpenSSL 版本作为 1.1.1g FIPS 21 Apr 2020

如何解决这个问题?

答案1

我没有解决方案,但我将在此处分享不适合评论的其他详细信息。

我使用以下方法遇到了同样的问题:

  • AlmaLinux 8.5(这似乎与 RHEL 8.5 的“bug for bug 兼容”的广告声明相符;))
  • 流浪者 2.2.19
  • 我必须运行CONFIGURE_ARGS="..." vagrant plugin install vagrant-libvirt才能看到你的错误,但后来最终陷入了同一个地方。

似乎是一个与 openssl 如何根据此源捆绑相关的未解决的错误:https://bugzilla.redhat.com/show_bug.cgi?id=1925782

当其他人嵌入自己的 openssl 副本并且它没有与系统相同的符号时,通常会发生这种情况。在这种情况下,您的 vagrant 包副本看起来像是它自己的 openssl(!):

$ rpm -ql ./vagrant_2.2.14_x86_64.rpm | grep crypto.so /opt/vagrant/embedded/lib64/libcrypto.so /opt/vagrant/embedded/lib64/libcrypto.so.1.1 $

这是一个外部包;我们没有提供。我们确实提供了一个系统 openssl (我们认为它非常好),并且该包应该使用它,而不是嵌入它自己的东西。特别是,当它调用其他系统功能(例如使用 krb5)时,它不需要用自己的库覆盖系统库。

似乎是一个未解决的问题,已经持续了一段时间,因为有多个问题单。 https://github.com/vagrant-libvirt/vagrant-libvirt/issues/1088#issuecomment-686513145

相关内容