For Windows, we now print: $ virt-customize -a ./test-data/phony-guests/windows.img --install MSSQL [ 0.0] Examining the guest ... [ 14.2] Setting a random seed virt-customize: warning: random seed could not be set for this type of guest [ 14.2] Installing packages: MSSQL virt-customize: error: '--install' failed because inspection could not determine the package manager for this guest OS.
If this guest OS is a common one with ordinary package management then this may have been caused by a failure of libguestfs inspection. For OSes such as Windows that lack package management, this is not possible. Try using one of the '--firstboot*' flags instead (described in the manual). --- customize/customize_run.ml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/customize/customize_run.ml b/customize/customize_run.ml index 83e70a6..c0e1e44 100644 --- a/customize/customize_run.ml +++ b/customize/customize_run.ml @@ -94,7 +94,7 @@ exec >>%s 2>&1 in (* http://distrowatch.com/dwres.php?resource=package-management *) - let guest_install_command packages = + let rec guest_install_command packages = let quoted_args = String.concat " " (List.map quote packages) in match g#inspect_get_package_management root with | "apk" -> @@ -116,10 +116,11 @@ exec >>%s 2>&1 | "urpmi" -> sprintf "urpmi %s" quoted_args | "yum" -> sprintf "yum -y install %s" quoted_args | "zypper" -> sprintf "zypper -n in -l %s" quoted_args + | "unknown" -> - error (f_"--install is not supported for this guest operating system") + error_unknown_package_manager (s_"--install") | pm -> - error (f_"sorry, don't know how to use --install with the '%s' package manager") pm + error_unimplemented_package_manager (s_"--install") pm and guest_update_command () = match g#inspect_get_package_management root with @@ -142,10 +143,18 @@ exec >>%s 2>&1 | "urpmi" -> "urpmi --auto-select" | "yum" -> "yum -y update" | "zypper" -> "zypper -n update -l" + | "unknown" -> - error (f_"--update is not supported for this guest operating system") + error_unknown_package_manager (s_"--update") | pm -> - error (f_"sorry, don't know how to use --update with the '%s' package manager") pm + error_unimplemented_package_manager (s_"--update") pm + + (* Windows has package_management == "unknown". *) + and error_unknown_package_manager flag = + error (f_"'%s' failed because inspection could not determine the package manager for this guest OS.\n\nIf this guest OS is a common one with ordinary package management then this may have been caused by a failure of libguestfs inspection.\n\nFor OSes such as Windows that lack package management, this is not possible. Try using one of the '--firstboot*' flags instead (described in the manual).") flag + + and error_unimplemented_package_manager flag pm = + error (f_"sorry, '%s' with the '%s' package manager has not been implemented.\n\nIf this guest OS has ordinary package management then you will need to add support to virt-customize.\n\nFor OSes lack package management, this is not possible.\n\nYou can work around this by using one of the '--run*' or '--firstboot*' options instead (described in the manual).") flag pm in (* Set the random seed. *) -- 2.7.4 _______________________________________________ Libguestfs mailing list [email protected] https://www.redhat.com/mailman/listinfo/libguestfs
