如何通过SSH非交互式地在Debian中列出手动安装的软件包?

时间:2014-04-25 16:41:50

标签: ssh debian aptitude

直接在我的Debian框中,我可以运行以下命令来显示手动安装的软件包:

aptitude search '!~M ~i'

这很有效。如果我从远程框中SSH并运行命令,我也会得到相同的结果。

但是,当我以批处理方式运行命令时,它不会产生相同的结果。

ssh user@server aptitude search '!~M ~i'

由于该过程需要一些时间来运行,因此我在运行两个变体时执行ps aux | grep aptitude,结果看起来是相同的。

我做错了什么?

PS。我知道dpkg -L可以生成这些信息,但这只是破碎的最小例子,我打算用!~pstandard !~pimportant !~prequired来过滤掉基础包,我不相信dpkg可以做(但如果可以的话,欢迎使用dpkg的解决方案。)

2 个答案:

答案 0 :(得分:1)

使用来自Bash - Escaping SSH commands的信息,我能够创建一个有效的命令:

ssh user@server $(printf '%q ' aptitude search '!~M ~i')

答案 1 :(得分:1)

如果target是更新的debian / ubuntu,你可以使用:

ssh user@server apt-mark showmanual