You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决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库为兼容版本

    1. 查看当前系统libxml2版本:rpm -qa | grep libxml2
    2. 下载并安装libxml2 2.12.x版本(可从CentOS Stream 9仓库获取对应架构包)
    3. 备份原库文件并创建软链接指向新库:
      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后替换。

  • 调整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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 21:13:16