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