我用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
我没有解决方案,但我将在此处分享不适合评论的其他详细信息。
- vabrant-libvirt 是一个由社区维护的插件(他们已经要求维护人员一段时间了,https://github.com/vagrant-libvirt/vagrant-libvirt/issues/1069,这可能就是为什么它这么长时间没有得到正确修复的原因)。由于它不是由 Hashicorp 维护,因此总体上它不像 Vagrant 那样得到很好的支持。
- RHEL8 变体已经损坏/出现故障大约一年了,所以除非您有扎实的开发能力,否则您的选择如下:
- 尝试这里的所有提示https://github.com/vagrant-libvirt/vagrant-libvirt#possible-problems-with-plugin-installation-on-linux
- 通读错误报告(许多都被关闭而没有解决方案,通常是因为它们被发布到错误的存储库上https://github.com/hashicorp/vagrant/issues) 提交错误报告https://github.com/vagrant-libvirt/vagrant-libvirt/issues
- 考虑切换发行版。 (Centos 7 直到 2024 年 6 月/再过 2.4 年才会停产,当它停产时,这个问题可能会在 Centos 8 上得到解决。而且总是可以选择切换到 Debian、SUSE 等)
我使用以下方法遇到了同样的问题:
- 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