【问题】
执行./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执行卸载命令: rpm -e open-vm-tools,手动删除open-vm-tools。
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 }
同样报错: 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了。