A S*_*ity 8 package-management apt dpkg
我使用了一个工具来计算您可以安装的最小软件包集,以获得您拥有的当前软件包集。这不同于告诉您您的选择是什么。从字面上看,它会找到最短的软件包列表,这些软件包将通过依赖项为您提供当前拥有的内容。
我忘了在哪里可以找到这个工具。这叫什么?
aptitude可以通过其搜索功能为您提供大部分帮助。以下是如何找到所有已安装的内容,而不仅仅是自动依赖项:
aptitude search -F "%p" "?installed ?not(?automatic)"
Run Code Online (Sandbox Code Playgroud)
这不是最佳选择,其中一些可能可以删除,但我不知道解决这个问题的简单方法。也许答案就在man aptitude。
再一想,通过该列表,您可以循环遍历它并找到每个包的依赖包(而不是依赖项)。如果其中一个在主列表中,请从列表中删除当前包...但只有在解析整个列表之后,否则您将错过 3 级以上 dep 树中的中间体。
您可以通过如下查询找到家属:
aptitude search '~i~Dpackage'
Run Code Online (Sandbox Code Playgroud)
我会尝试编写脚本,但我是在一个小手机键盘上输入的。即使我也有极限。
编辑:尝试睡觉五分钟后,我开始研究这个。像这样的事情应该可以完成工作:
orig=$(aptitude search -F "%p" "?installed ?not(?automatic)")
newlist="";
for p in $orig; do
depended=0;
for dependant in `aptitude search -F "%p" "~i~D$p"`; do
if [[ $orig == "* $dependant *" ]]; then
depended=1;
fi;
done;
if [[ $depended == 0 ]]; then
newlist="$newlist $p";
fi;
done;
echo $newlist
Run Code Online (Sandbox Code Playgroud)
请注意,这需要很长时间才能运行,并且可能过于敏感(例如,它会删除您手动安装的东西,您想要手动安装的东西,如果它们被您在 $orig 列表中的其他东西所依赖)也许是之后安装的)。
| 归档时间: |
|
| 查看次数: |
686 次 |
| 最近记录: |