无法理解 apt-cache remove 的功能

无法理解 apt-cache remove 的功能

我需要从头开始重新安装 wine,因此我首先决定卸载当前版本,然后运行命令

sudo apt-cache pkgnames wine

在运行以下任何一项之前和之后:

sudo apt-cache --purge remove wine1.4
sudo apt-cache --purge remove wine1.6
sudo apt-cache --purge remove wine1.7

导致相同的包列表,所以我怎么知道执行apt-cache remove实际上已经卸载了我命令的包?

该选项难道不应该--purge意味着完全删除 wine(包括 wine1.7-dbg、wine1.7dev 和其他几个文件)吗?

答案1

删除软件包的正确命令是,例如

sudo apt-get --purge remove wine1.4

不是

sudo apt-cache --purge remove wine1.4

--purge如果其他包不依赖于此包,则不会删除其他包。


该命令sudo apt-cache pkgnames wine仅打印已知包而不是安装状态:

man apt-cache

pkgnames [前缀]
    此命令打印APT 知道每个软件包
    可选参数是用于过滤名称列表的前缀匹配。
    输出适合在 shell tab 中使用完整的功能和
    输出生成速度极快。此命令最好与
    --generate 选项。

要显示安装状态,您可以使用apt-cache policy

$ apt-cache policy wine
wine:
  Installed: (none)
  Candidate: 1:1.7.44-0ubuntu1
  Version table:
     1:1.7.44-0ubuntu1 0
        500 http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu/ wily/main amd64 Packages
     1:1.6.2-0ubuntu10 0
        500 http://archive.ubuntu.com/ubuntu/ wily/universe amd64 Packages

或者dpkg -l

$ dpkg -l | grep wine
rc  wine1.6                                     1:1.6.2-0ubuntu10                        amd64        Microsoft Windows Compatibility Layer (Binary Emulator and Library)
rc  wine1.6-amd64                               1:1.6.2-0ubuntu10                        amd64        Microsoft Windows Compatibility Layer (64-bit support)
rc  wine1.6-i386:i386                           1:1.6.2-0ubuntu10                        i386         Microsoft Windows Compatibility Layer (32-bit support)
ii  wine1.7                                     1:1.7.44-0ubuntu1                        amd64        Microsoft Windows Compatibility Layer (Binary Emulator and Library)
ii  wine1.7-amd64                               1:1.7.44-0ubuntu1                        amd64        Microsoft Windows Compatibility Layer (64-bit support)
ii  wine1.7-i386:i386                           1:1.7.44-0ubuntu1                        i386         Microsoft Windows Compatibility Layer (32-bit support)
ii  winetricks                                  0.0+20141009+svn1208-2ubuntu1            all          Microsoft Windows Compatibility Layer (winetricks)

答案2

摘自 apt-get 的手册页:

   purge is identical to remove except that configuration files are deleted too.

它不会删除比普通包更多或更少的包remove

但要删除已安装的其他软件包依赖项之后您可以运行此命令:

sudo apt-get --purge autoremove

再次引用手册页:

   autoremove
       autoremove is used to remove packages that were automatically
       installed to satisfy dependencies for other packages and are now no
       longer needed.

相关内容