无法卸载包,错误为“无法找到包”

无法卸载包,错误为“无法找到包”

我使用 Katoolin 脚本安装了几个 Kali 工具。过了一会儿,我尝试卸载这些工具,我能够删除其中的大部分,但有几个应用程序无法使用 sudo apt-get remove <package name>命令卸载。

我得到:E: Unable to locate package <package name>

也尝试使用,sudo apt autoremove <package name>结果相同。

我假设实际安装的软件包的名称与我在“应用程序”窗口中看到的名称不同。我如何删除这些软件包或找到它们的实际名称?

答案1

  • apt只能卸载由 apt 安装的软件包或使用 apt 作为后端的应用程序,如 Ubuntu Software 或 Synaptic。结果apt policy searchsploit snmp-check ssltrip thcping6显示这 4 个软件包都不是来自默认的 Ubuntu 存储库。这些软件包是由 Katoolin 安装的,Katoolin 是一个帮助在 Ubuntu 和其他 Linux 发行版上安装 Kali Linux 工具的脚本。Katoolin 将其自己的存储库添加到 Ubuntu 的软件源中,因此这 4 个软件包有可能是由 apt 安装的,但 Katoolin 也可以从 GitHub 和其他来源安装软件包,这些来源并不总是提供 apt 可以安装的 .deb 文件,在这种情况下请检查这个问题:如果我从源代码构建包,我该如何卸载或完全删除?

  • 即使使用 apt 安装软件包,也只能通过运行包含其确切软件包名称的命令来卸载它。Ubuntu 中的软件包名称区分大小写,并且软件包名称的一部分不会被解释为apt确切的软件包名称。但是,如果您知道软件包名称的一部分,则可以通过运行以下命令轻松找到完整的软件包名称:

    apt search ^rhythymb 
    

    此命令返回以字符串开头的包rhythmb,例如 rhythmbox。或者,您可以运行如下命令:

    apt search "5.4.0-48.*"
    

    此命令返回包含5.4.0-48字符串(Linux 内核版本)可出现在其名称中的任何位置。

  • 不要假设任何功能都由与该功能同名的软件包提供。同一个软件包可能提供多个命令,但其名称与其提供的任何程序和命令都不同。

    但是,您可以按照以下方式从命令的确切名称轻松找到包名称。下面是使用xdg-open在用户首选应用程序中打开文件或 URL 的命令的示例。

    which xdg-open  
    

    上述命令返回/usr/bin/xdg-open

    dpkg -S /usr/bin/xdg-open  
    

    上述命令返回xdg-utils: /usr/bin/xdg-open,表明该xdg-open命令由xdg-实用程序包裹。

  • 如果所有其他方法都失败了,那么可能由于其他原因,该软件包已被弃用或在您的 Ubuntu 默认存储库中不可用。您可以通过安装 devscripts 软件包并sudo apt install devscripts运行以下命令来检查此软件包是否在其他版本的 Ubuntu 中可用:

    rmadison package-name
    

答案2

Karel 的回答是正确的,但这里有另一个角度:如果要删除的包对于包管理器来说是未知的,则无法同时安装它,这意味着没有必要进一步删除它。

相关内容