如何移除Wine及其依赖项?

我想从我的Ubuntu 14.04 Trusty Tahr上移除Wine 1.7。但是当我输入sudo apt-get purge wine时,它没有起作用,给我返回了"package not installed"。

所以我输入sudo apt-get purge wine(tab),它显示了一些软件包,然后我执行了操作。

sudo apt-get purge wine1.7 wine1.7-amd64 wine1.7-i386 wine-gecko2.34 wine-mono4.5.4 winetricks 

我卸载了Wine,但它告诉我要做什么。
sudo apt-get autoremove

要删除孤立的软件包,但是当我执行自动删除命令时,它破坏了我的系统。幸运的是,我有一个 Clonezilla 分区备份,所以我恢复了一周前的操作系统,但是它安装了 wine,所以我回到了起点。所以我的问题是如何删除 wine 及其依赖项而不破坏我的系统?以下是根据 apt 列出的孤立软件包,但正如我所说,当我执行 sudo apt-get autoremove 命令时,它会破坏我的系统。

以下是这些软件包:

The following packages were automatically installed and are no longer required:
  fonts-horai-umefont gcc-4.8-base:i386 gnome-exe-thumbnailer icoutils
  libasn1-8-heimdal:i386 libasound2:i386 libasound2-plugins:i386
  libasyncns0:i386 libavahi-client3:i386 libavahi-common-data:i386
  libavahi-common3:i386 libcapi20-3 libcapi20-3:i386 libcups2:i386
  libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libelf1:i386
  libexif12:i386 libexpat1:i386 libffi6:i386 libflac8:i386 libfontconfig1:i386
  libfreetype6:i386 libgcrypt11:i386 libgd3:i386 libgif4:i386
  libgl1-mesa-dri:i386 libgl1-mesa-glx:i386 libglapi-mesa:i386
  libglib2.0-0:i386 libglu1-mesa:i386 libgnutls26:i386 libgpg-error0:i386
  libgphoto2-6:i386 libgphoto2-port10:i386 libgssapi-krb5-2:i386
  libgssapi3-heimdal:i386 libgstreamer-plugins-base0.10-0:i386
  libgstreamer0.10-0:i386 libhcrypto4-heimdal:i386 libheimbase1-heimdal:i386
  libheimntlm0-heimdal:i386 libhx509-5-heimdal:i386 libice6:i386
  libieee1284-3:i386 libjack-jackd2-0:i386 libjbig0:i386 libjpeg-turbo8:i386
  libjpeg8:i386 libk5crypto3:i386 libkeyutils1:i386 libkrb5-26-heimdal:i386
  libkrb5-3:i386 libkrb5support0:i386 liblcms2-2:i386 libldap-2.4-2:i386
  libllvm3.4:i386 libltdl7:i386 libmpg123-0 libmpg123-0:i386 libodbc1
  libogg0:i386 libopenal1:i386 liborc-0.4-0:i386 libosmesa6 libosmesa6:i386
  libp11-kit0:i386 libpcap0.8:i386 libpciaccess0:i386 libpng12-0:i386
  libpulse0:i386 libroken18-heimdal:i386 libsamplerate0:i386 libsane:i386
  libsasl2-2:i386 libsasl2-modules:i386 libsasl2-modules-db:i386 libsm6:i386
  libsndfile1:i386 libspeexdsp1:i386 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++6:i386 libtasn1-6:i386 libtiff5:i386 libtxc-dxtn-s2tc0:i386
  libusb-1.0-0:i386 libv4l-0:i386 libv4lconvert0:i386 libvorbis0a:i386
  libvorbisenc2:i386 libvpx1:i386 libwind0-heimdal:i386 libwrap0:i386
  libx11-6:i386 libx11-xcb1:i386 libxau6:i386 libxcb-dri2-0:i386
  libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386 libxcb-sync1:i386
  libxcb1:i386 libxcomposite1:i386 libxcursor1:i386 libxdamage1:i386
  libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxi6:i386 libxinerama1:i386
  libxml2:i386 libxpm4:i386 libxrandr2:i386 libxrender1:i386
  libxshmfence1:i386 libxslt1.1:i386 libxt6:i386 libxxf86vm1:i386
  ocl-icd-libopencl1:i386 odbcinst odbcinst1debian2 p11-kit-modules:i386 p7zip
  unixodbc wine-gecko2.34:i386
Use 'apt-get autoremove' to remove them.

1我建议你尝试使用aptitude remove来完成整个操作。首先,使用apt-get install aptitude安装aptitude,然后执行sudo aptitude remove wine*,它会告诉你避免破坏系统的最佳方法。虽然这不一定是完整回答你问题的答案,但在过去帮助了我很多。 - sbergeron
1它显示才能将删除依赖项以及apt所显示的所有软件包。这肯定会破坏我的系统。 - Shantanu Bedajna
可能是在安装wine之前,一些amd64所需的软件包已被其i386版本替换。尝试运行sudo apt-get install ubuntu-desktop,然后再次检查apt-get -s autoremove-s表示仅模拟运行,不实际执行)。 - user.dz
2个回答

我建议使用apt-get autoremove,然后使用synaptic或其他工具修复损坏的依赖项。不确定这是否有效,但我会尝试。我在我的15.10上删除了wine并使用了apt-get autoremove,它运行良好。也许您需要进行系统更新或其他操作。我没有做的一件事是sudo apt-get purge,我通常使用synaptic右键选择标记为完全删除,它让我安装了某些通用版本的东西,现在不能完全记得,但然后我自动除去了大部分与您相同的东西,它要求我重新启动,并且启动得很好。

试试这个:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get autoremove
sudo apt-get purge wine*
sudo apt-get autoremove

这样可以刷新缓存并确保您拥有所有更新的软件包,然后删除不必要的软件包,再删除Wine和其他一些“不必要”的软件包。

如果没有任何效果,就忽略它们吧。99.99%的用户都有足够的磁盘空间来保留它们。


基本上,对于这样的问题,我会尝试以上命令的各种组合,直到它能够正常工作。这就是鸟枪策略。 - Daniel
我确实做了那个,但是却导致了系统崩溃。看起来系统认为所有这些软件包都是孤立的,但它们肯定是必需的,特别是会破坏桌面环境。我安装了Gnome和Cinnamon,但它们都无法正常工作,只有Cinnamon能在安全模式下启动。 - Shantanu Bedajna
那就把它们留在那里,不要理会它们。如今,不必要的文件不会占用宝贵的磁盘空间,因为磁盘空间非常充裕。只需将它们留在那里即可。 - Daniel
autoremove就像把一枚手榴弹扔进一个房间,希望它只会杀死坏人。 - frlan
@frian 并且对一年前的帖子进行评论就像是返回基地试图击败蹲守狙击手一样。你不会在那里找到任何人。 - Daniel