如何检查我的服务器上是否安装了软件包?

我最近安装了Ubuntu Server edition 13.10(Saucy Salamander)。 但我遇到了一些问题。

在安装结束时,它会询问您是否需要几个额外的软件包,如OpenSSH服务器和虚拟机主机。 这是我正在看的东西:

在此输入图像描述

现在,我的问题是我不记得我是否选中了“虚拟机主机”复选框。 如何检查我的服务器是否有相应的软件包?

虚拟机主机附带了哪些软件包?

列出所有已安装的软件包

这里“less”是一个简单的文本阅读器,用于滚动在现有终端窗口中打开的新缓冲区中的包列表。 该列表不会与其他终端命令和输出混合使用。 点击“q”返回终端提示符。 有关详细信息,请参阅“man less”。

dpkg -l | less 

要检查是否已安装软件包:

 dpkg -l {package_name} dpkg -l vlc 

检查软件包是否已安装(例如, vlc )。 如果已安装,请启动包:

 dpkg -l | grep vlc 

显示软件包的安装位置。 “-S”(大写字母S)代表“搜索”

 sudo dpkg -S {package_name} sudo dpkg -S skype 

要使用Grep搜索:

 dpkg -l | grep {keywords} dpkg -l | grep pdf 

使用dpkg

这个命令是debian包管理器。

您可以列出所有已安装的软件包

 dpkg -l 

您可以查看特定包的详细信息

 dpkg -p packagename 

并了解它是否已安装,请使用

 dpkg -s packagename | grep Status 

您可以了解哪个软件包包含您需要的软件

 apt-cache search name* 

在您的情况下,您应该使用此命令来搜索所需的包名称

 apt-cache search virtual machine host 

apt -qq list PACKAGE也可用于检查PACKAGE是否已安装。

如果安装它会打印像(在行尾的[installed] ):

 $ apt -qq list awscli awscli/stable,now 1.4.2-1 all [installed] 

如果没有安装,输出将是:

 $ apt -qq list awscli awscli/stable 1.4.2-1 all 

我找到了一种方法,只用dpkg-query命令检查包安装,没有管道。

我在为ansible playbook编写任务时搜索了这样的解决方案。

所以,哟可以做这样的事情:

 /usr/bin/dpkg-query --show --showformat='${db:Status-Status}\n' '' 

这只是另一种做事的方式。

我写了一个新的答案,因为Tasksel ‘任务名称’不会出现在dpkgapt查询中。 意思是其他答案不完整(或错误)。

“我不记得我是否检查了’虚拟机主机’复选框..”

重新运行sudo tasksel后,检查名称是否有星号。
(如果正在运行tasksel --list-tasks则为’ i ‘)。

如果你没有看到这个,那么你可能没有安装’tasksel 元软件包 ‘。


“..如何查看我的服务器是否有相应的软件包?”

如果要查找虚拟机主机tasksel元数据包下安装的内容:

tasksel --list-tasks

(在你的情况下, tasksel --list-tasks | grep virt就足够了)

这给出了正确的任务名称以及是否已安装的指示。

在您的情况下,此任务名称是virt-host


“虚拟机主机附带了哪些软件包?”

从最后一个命令中,找到tasksel任务名称。
这是下一个命令所必需的:

tasksel --task-packages virt-host

这列出了构成名称的单个Tasksel元包(由附加的’^’表示)。
在你的情况下,它是virt-host^

找到合适的元名后,您可以使用apt:

  apt show virt-host^ | grep "Package:" 

(或apt-cache show ...如果apt show不起作用。)

这将显示构成给定元包的所有包。

然后:

  dpkg -l {each individual pkg name listed above} 

这将告诉您是否安装/卸载了单个软件包(以第二个字母表示:’i’状态表示已安装)。 对task / meta包下列出的所有包执行此操作。

这应该回答原始问题。

附注:/usr/share/tasksel/descs/ubuntu-tasks.desc还包含Tasksel元数据包的说明。 如果您: grep "virt" /usr/share/tasksel/descs/ubuntu-tasks.desc它将显示正确的APT元包名称。 (在你的情况下,这是ubuntu-virt-server )。 您还可以将apt命令与此元名一起使用。

如果你想删除任务包,这会进入杂草。 请查阅https://askubuntu.com/a/88897/169878或其他任何答案。

请注意,“meta”apt包与Tasksel包名称不匹配。 有关详细信息,请参阅Tasksel社区页面 。

使用tasksel( sudo apt-get install tasksel如果你还没有)并运行tasksel --list-tasks

tasksel将打印出一个任务列表,每个安装的任务旁边都有一个i ,并且每个未安装的任务旁边都有一个u

如果要安装任务,请使用tasksel install 。 您正在寻找的任务的名称是virt-host

软件选择项称为“任务”。