如何解决HashiCorp Packer vmware-iso构建器的libxml版本不匹配错误?
问题描述
我近期开始使用HashiCorp Packer创建VMware虚拟机,选用VMware插件中的vmware-iso构建器。执行packer build命令时,反复遇到以下错误:
vmware-iso.ubuntu: error starting virtual machine: VMware error: Warning: program compiled against libxml 212 using older 209
我的环境信息:
- 操作系统:Rocky Linux 9.5
- Packer版本:v1.11.2
- VMware插件版本:v1.1.0
- VMware Workstation Pro版本:17.6.1 build-24319023(免费版)
使用的配置文件ubuntu.pkr.hcl内容如下:
packer { required_plugins { vmware = { version = "~> 1" source = "github.com/hashicorp/vmware" } } } source "vmware-iso" "ubuntu" { iso_url = format( "https://releases.ubuntu.com/%s.%s/ubuntu-%s-live-server-amd64.iso", split(".", var.ubuntu_release_version)[0], split(".", var.ubuntu_release_version)[1], var.ubuntu_release_version ) iso_checksum = var.ubuntu_iso_checksum ssh_username = "packer" ssh_password = "packer" shutdown_command = "echo 'packer' | sudo -S shutdown -P now" vm_name = "ubuntu-vm" disk_size = 10000 memory = 1024 cpus = 1 communicator = "ssh" } build { sources = ["source.vmware-iso.ubuntu", ] provisioner "shell" { environment_vars = [ "FOO=hello world", ] inline = [ "echo Adding file to Docker Container", "echo \"FOO is $FOO\" > example.txt", ] } provisioner "shell" { inline = ["echo This provisioner runs last"] } } variable "ubuntu_release_version" { type = string default = "22.04.5" } variable "ubuntu_release_name" { type = string default = "jammy" } variable "ubuntu_iso_checksum" { type = string default = "sha256:9bc6028870aef3f74f4e16b900008179e78b130e6b0b9a140635434a46aa98b0" }
解决方案
这个错误源于VMware Workstation编译依赖的libxml2版本(2.12.x)与系统默认安装的版本(2.9.x)不兼容,按以下步骤修复:
替换系统libxml2库为兼容版本
- 查看当前系统libxml2版本:
rpm -qa | grep libxml2 - 下载并安装libxml2 2.12.x版本(可从CentOS Stream 9仓库获取对应架构包)
- 备份原库文件并创建软链接指向新库:
sudo mv /usr/lib64/libxml2.so.2 /usr/lib64/libxml2.so.2.bak sudo ln -s /usr/lib64/libxml2.so.2.12.0 /usr/lib64/libxml2.so.2
若无法获取预编译包,可从源码编译libxml2 2.12.x后替换。
- 查看当前系统libxml2版本:
调整VMware库加载优先级
编辑/usr/bin/vmware脚本,在开头添加以下内容,让VMware优先加载自身携带的libxml2库:export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libxml2.so.2:$LD_LIBRARY_PATH保存后重启VMware服务:
sudo systemctl restart vmware升级Packer VMware插件
执行命令升级插件到最新版,确保与VMware版本兼容:packer plugins install github.com/hashicorp/vmware验证修复
重新运行packer build ubuntu.pkr.hcl,若仍有问题,尝试重启系统后再次测试。
内容的提问来源于stack exchange,提问作者pitchblack408
相关产品推荐
相关产品推荐

