This document describes a clean, RPM-first installation on Fedora for VMware β KVM workflows, covering both:
Control plane
pyvmomi, govc, optional ovftoolData plane
libvixDiskLib.soThis project is intentionally not βclick migrate and prayβ.
The goals:
/optIf something can fail at runtime, we make it impossible to reach that state.
Modern Fedora intentionally removes legacy libraries that β οΈ VMware-provided binaries still depend on.
Install these before any VMware tooling:
sudo dnf install -y \
libxcrypt-compat \
libnsl
These packages provide:
libcrypt.so.1 β required by ovftool.binInstalling them up front ensures you never see errors like:
error while loading shared libraries: libcrypt.so.1: cannot open shared object file
Optional sanity check:
ldconfig -p | grep libcrypt.so.1
π’ If it shows up, youβre future-proofed.
All required Python libraries are available as official Fedora RPMs and should be installed system-wide.
sudo dnf install -y \
python3-rich \
python3-termcolor \
python3-watchdog \
python3-pyyaml \
python3-requests \
python3-pyvmomi
python3-rich β structured logging, progress bars, TUI outputpython3-termcolor β ANSI color helperspython3-watchdog β filesystem event monitoring (inotify)python3-PyYAML β YAML parsingpython3-requests β HTTP clientpython3-pyvmomi β VMware vSphere API SDKFedora automatically pulls safe dependencies such as:
python3-markdown-it-py, python3-mdurlpython3-pygmentsπ« No pip.
π« No wheels.
π« No ABI drift.
Run the following using system Python (no virtualenv):
python3 - <<'EOF'
import rich
import termcolor
import watchdog
import yaml
import requests
import pyVmomi
print("β
All system RPM imports OK")
print("pyVmomi version:", pyVmomi.__version__)
EOF
Expected:
pyVmomi reports 8.0.xgovc (govmomi CLI)govc is the preferred open-source control-plane tool for vSphere:
Download from:
π https://github.com/vmware/govmomi/releases
Example:
curl -LO https://github.com/vmware/govmomi/releases/download/v0.44.0/govc_Linux_x86_64.tar.gz
tar -xzf govc_Linux_x86_64.tar.gz
sudo install -m 0755 govc /usr/local/bin/govc
which govc
govc version
govc β fast CLI, bulk ops, visibilitypyvmomi β Python orchestration and automationThey are complementary, not redundant.
ovftool)VMware OVF Tool is an optional, proprietary utility used for:
Policy in this project:
govc is the defaultovftool is opt-inDownload the Linux ZIP archive from Broadcom:
π https://developer.broadcom.com/tools/open-virtualization-format-ovf-tool/latest
File name will resemble:
VMware-ovftool-4.x.y-lin.x86_64.zip
Extract directly under /opt:
sudo mkdir -p /opt/ovftool
sudo unzip VMware-ovftool-*-lin.x86_64.zip -d /opt/ovftool
sudo chmod -R a+rX /opt/ovftool
Resulting layout:
/opt/ovftool/
βββ ovftool
βββ ovftool.bin
βββ lib/
βββ env/
β No system pollution β No installers β Fully auditable
sudo ln -s /opt/ovftool/ovftool /usr/local/bin/ovftool
Verify:
ovftool --version
Expected:
VMware ovftool 4.x.y (build-xxxxxx)
Because compatibility libraries were installed first, π’ no loader errors will occur.
For high-performance VMDK access (snapshots, block-level reads), install VMware VDDK.
Fedora does not ship VDDK. This is expected.
π https://developer.broadcom.com/sdks/vmware-virtual-disk-development-kit-vddk/latest (Tested with VDDK 9.0.0.0)
sudo mkdir -p /opt/vmware
sudo tar -xzf VMware-vix-disklib-*.tar.gz -C /opt/vmware
Result:
/opt/vmware/vmware-vix-disklib/
βββ bin/
βββ lib64/
β βββ libvixDiskLib.so
β βββ libvixDiskLib.so.7
β βββ libvixDiskLib.so.6
β βββ libvixDiskLib.so.5
echo "/opt/vmware/vmware-vix-disklib/lib64" | sudo tee /etc/ld.so.conf.d/vmware-vddk.conf
sudo ldconfig
Verify:
ldconfig -p | grep vixDiskLib
Some workflows require explicit paths:
export VIXDISKLIB_DIR=/opt/vmware/vmware-vix-disklib
export LD_LIBRARY_PATH=/opt/vmware/vmware-vix-disklib/lib64:$LD_LIBRARY_PATH
Persist if needed:
sudo tee /etc/profile.d/vddk.sh <<'EOF'
export VIXDISKLIB_DIR=/opt/vmware/vmware-vix-disklib
export LD_LIBRARY_PATH=/opt/vmware/vmware-vix-disklib/lib64:$LD_LIBRARY_PATH
EOF
/optThis mirrors real production VMware tooling layouts.
β System compatibility libraries installed first
β Fedora RPMs for all Python dependencies
β pyvmomi verified on system Python
β govc installed for control-plane operations
β ovftool ZIP installed cleanly under /opt
β VDDK installed and registered for data-plane access