Synaptic中一些任务的命令行等效性

我已经使用apt-get来进行大部分的软件包管理。然而,有时候我偶尔需要使用Synaptic来完成某些任务。我想学习在Synaptic中执行以下操作的等效命令:

  • 检查一个软件包的依赖关系/依赖软件包。(可以通过查看软件包属性在Synaptic中完成此操作)。
  • 浏览可用的软件包
  • 搜索(在软件包名称以及详细信息/描述中)某个关键词。(在Synaptic顶部的搜索功能)
  • 检查一个软件包是否已安装

另外,是否有办法找到不再需要的软件包(例如,因为我删除了一个依赖项而不再使用的软件包)。我有一种感觉,我的系统因为我删除了某些程序而变得非常臃肿,而并非所有的依赖项都随之删除。


请查看 man aptman dpkg - Pandya
3个回答

  • 检查软件包的依赖关系/依赖软件包(可以在Synaptic中通过查看软件包属性来完成):

    apt-cache depend '软件包名称'
    apt-cache rdepend '软件包名称'
    
  • 浏览可用的软件包

    apt-cache pkgnames
    apt-cache search '.*'
    apt-cache show '软件包名称'
    
  • 搜索关键词(在软件包名称以及详细信息/描述中进行搜索)(在Synaptic顶部的搜索功能中)

    apt-cache search 模式
    apt-cache --names-only search 模式
    
  • 检查软件包是否已安装

    dpkg -l | grep 软件包名称
    
最后一个无法得到期望的结果,因为当终端宽度较窄时,列会被截断。更安全的替代方案是:
dpkg-query -Wf '${Package}\n' | grep pkg
dpkg --get-selections | grep pkg

如果你需要一个软件包管理器,但不能访问图形界面,aptitude 也可以帮上忙。 - Davidson Chua

回答你上一个关于寻找不再需要的软件包的问题。你可以通过以下方式找到不再需要的软件包:
sudo deborphan

此外,默认情况下,aptitude会自动删除未使用的软件包,所以我建议您使用它而不是apt-get(它还有其他很好的功能)。请注意,您可能需要安装deborphan和aptitude,因为它们不在默认安装中(可以通过apt-get安装)。
如果您想继续使用apt-get,您可以使用以下命令删除未使用的软件包:
sudo apt-get autoremove

然而,我发现deborphan能够找到比aptitude和apt-get更多未使用的软件包。
最后,请注意,aptitude和apt-get都可以使用“autoclean”选项从计算机存档中删除旧软件包:
sudo aptitude autoclean
sudo apt-get autoclean

能力也可以设置成自动完成这个任务。

此外,有没有办法找到不再需要的软件包(例如,因为我删除了一个依赖项而不再使用的软件包)。
安装 deborphan。默认模式会列出没有任何依赖关系的库软件包的列表 - 您还可以使用 -a 来获取所有软件包的列表 [这显然会包括您想保留的许多软件包,但您可以了解一下您可能不需要的内容,删除它们不会影响其他任何东西]。