直接在我的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的解决方案。)
答案 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