虚拟机suse更新安装VMware Tools,卸载open-vm-tools报错的解决方法。

时间:2021-09-16 22:10:55

【问题】

   执行./vmware-install.pl安装VMware Tools时,会先删除已经安装的VMware Tools的文件。

  执行中报错,提示请手动删除open-vm-tools。

  错误信息如下:

 error: %preun(open-vm-tools-2008.04.14-21.1.i586) scriptlet failed, exit status 1

【解决方案】

查询vmware-install.pl,发现是通过rpm -e 来删除已经安装文件的。如下是截取的vmware-install.pl中有关rpm -e 卸载的脚本片段。

1989 # Attempts to remove the given list of RPM packages
1990 # @param - List of rpm packages to remove
1991 # @returns - -1 if there was an internal error, otherwise
1992 # the return value of RPM
1993 #
1994 sub removeRPMPackages {
1995 my @pkgList = @_;
1996 my $bin = internal_which('rpm');
1997 my @cmd = (("$bin", '-e'), @pkgList);
1998
1999 if (-x $bin) {
2000 return system(@cmd);
2001 } else {
2002 return -1;
2003 }
2004 }
执行卸载命令: rpm -e open-vm-tools,手动删除open-vm-tools。

同样报错: error: %preun(open-vm-tools-2008.04.14-21.1.i586) scriptlet failed, exit status 1

经网络查询,通过给rpm -e卸载命令加一个选项参数--noscripts,结果卸载命令变为rpm -e--noscripts open-vm-tools 。

这样就没有这个问题了重新执行./vmware-install.pl脚本来安装VMware Tools就可以了。

ps:--noscripts 相当于 --nopre --nopost --nopreun --nopostun。在卸载open-vm-tools时报错是跟preun相关的scriptlet失败,将这项scriptlet屏蔽掉就ok了。