我看到我的系统安装了几个任务。下面是使用以下命令的输出tasksel
:
$ tasksel --list-tasks | grep ^i
i print-server Print server
i samba-server Samba file server
i ubuntu-mate-core Ubuntu MATE minimal
i ubuntu-mate-desktop Ubuntu MATE desktop
i openssh-server OpenSSH server
i server Basic Ubuntu server
如何使用不同的工具获取相同的信息?
希望得到解决方案没有安装tasksel包. 只能通过解析 dpkg-info 或者类似的东西。
答案1
我不认为这是实际检查的方式tasksel
,但没有tasksel
你可以
解析任务列表
apt-cache dumpavail | grep ^Task: | sed -e 's/Task: //' -e 's/,./\n/g' | sort -u
获取为任务安装的软件包列表。例如
openssh-server^
元包apt-cache show openssh-server^ | grep ^Package: | sed -e 's/Package: //' | sort -u
检查安装状态以获取为任务安装的软件包列表。例如,对于
openssh-server^
元包apt-cache policy $(apt-cache show openssh-server^ | grep ^Package: | sed -e 's/Package: //' | sort -u) | grep -B 1 Installed:
使用 bash 将它们粘合在一起以获取任务状态
for t in $(apt-cache dumpavail | grep ^Task: | sed -e 's/Task: //' -e 's/,./\n/g' | sort -u); do t_installed=u if (( $(apt-cache policy $(apt-cache show ${t}^ | grep ^Package: | sed -e 's/Package: //' | sort -u) | grep Installed: | grep -c 'none') == 0 )); then t_installed=i ; fi echo $t_installed $t done