Wine 卸载后仍然可用

sta*_*tox 0 yum rpm centos wine

我在 CentOS 7.4 机器上遇到了一个我不明白的问题。

有人安装了 wine 并且没有记录他们是如何安装它的(是使用yum、直接使用 arpm还是从源构建的?我不知道)。现在我需要卸载它,所以我做了以下事情:

  • 我使用sudo yum remove wine*which 卸载了大约 15 个不同的软件包
  • 使用rpm -qa | grep wine我检查了以前的软件包确实已卸载。

问题是当which wine我得到/usr/local/bin/winels -l /usr/local/bin/ | grep wine返回时我仍然有一个wine可执行文件

-rwxr-xr-x  1 root root   17616  wine
-rwxr-xr-x  1 root root    1973  wineboot
-rwxr-xr-x  1 root root  247924  winebuild
-rwxr-xr-x  1 root root    1973  winecfg
-rwxr-xr-x  1 root root    1973  wineconsole
lrwxrwxrwx  1 root root       7  winecpp -> winegcc
-rwxr-xr-x  1 root root    1973  winedbg
-rwxr-xr-x  1 root root  413540  winedump
-rwxr-xr-x  1 root root    1973  winefile
lrwxrwxrwx  1 root root       7  wineg++ -> winegcc
-rwxr-xr-x  1 root root   72700  winegcc
-rwxr-xr-x  1 root root   95099  winemaker
-rwxr-xr-x  1 root root    1973  winemine
-rwxr-xr-x  1 root root    1973  winepath
-rwxr-xr-x  1 root root   32256  wine-preloader
-rwxr-xr-x  1 root root 2821988  wineserver
Run Code Online (Sandbox Code Playgroud)

所以我有删除这些文件的想法(我实际上移动了它们)但是当我使用命令 wine 而不是not a command我得到预期的错误消息时/usr/local/bin/wine: No such file or directory,我认为卸载没有完全执行。(所以现在我把我的文件移回/usr/local/bin

因此我的问题:

  • 什么是保持引用/usr/local/bin/wine,为什么要保持这个引用?(注意alternatives --list | grep wine什么都不返回)
  • 如何以干净的方式完全摆脱这种葡萄酒安装?

编辑我必须添加sudo yum erase wine* --remove-leaves返回Command line error: no such option: --remove-leaves

[user@host]$ yum --version
3.4.3
  Installed: rpm-4.11.3-32.el7.x86_64 at 2018-05-04 08:10
  Built    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> at 2017-11-13 15:51
  Committed: Panu Matilainen <pmatilai@redhat.com> at 2017-11-13

  Installed: yum-3.4.3-154.el7.noarch at 2018-04-06 13:07
  Built    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla> at 2017-03-27 16:30
  Committed: Valentina Mukhamedzhanova <vmukhame@redhat.com> at 2017-03-27
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 5

当你/usr/local/bin/wine*离开时,你的 shell 仍然记得你之前运行过的命令;在您的路径中移动文件后,您需要运行

hash -r
Run Code Online (Sandbox Code Playgroud)

强制 shell 在您尝试运行它们时重新发现哪些可执行文件可用。

要彻底删除 Wine,您真的需要知道它是如何安装的。在您的情况下,我认为您能做的最好的事情是删除/usr/local/bin( wine*, regedit, regsrv32, msiexec)中的所有 Wine 可执行文件,并删除其关联目录/usr/local/lib/wine/usr/local/share/wine(或类似内容)。您可能想要查找 Wine 前缀,然后也将其删除;find / -type d -name drive_c -printf %p\\n将为您列出那些。