D.Z*_*Zou 266 server package-management virtualization system-installation
我最近安装了 Ubuntu Server 版本 13.10(Saucy Salamander)。但我遇到了一些问题。
在安装结束时,它会询问您是否需要几个额外的包,例如 OpenSSH 服务器和虚拟机主机。这是我在看的:
现在,我的问题是我不记得是否选中了“虚拟机主机”复选框。如何检查我的服务器是否有相应的包?
虚拟机主机自带哪些包?
Bab*_*ton 318
您是否想了解所有带选项的 dpkg 命令?请阅读以下链接。
管理基于 Debian 的 Linux 服务器的 15 个 dpkg 命令
列出所有已安装的软件包
这less是一个简单的文本阅读器,用于在现有终端窗口中打开的新缓冲区中滚动浏览包列表。该列表不会与其他终端命令和输出混合。点击q返回终端提示。查看man less更多信息。
dpkg -l | less
Run Code Online (Sandbox Code Playgroud)
要检查是否安装了软件包:
dpkg -l {package_name}
dpkg -l vlc
Run Code Online (Sandbox Code Playgroud)
检查软件包是否已安装(例如,vlc)。如果已安装,请启动软件包:
dpkg -l | grep vlc
Run Code Online (Sandbox Code Playgroud)
显示安装包的位置。该-S(大写S)表示“搜索”
sudo dpkg -S {package_name}
sudo dpkg -S skype
Run Code Online (Sandbox Code Playgroud)
要使用 Grep 进行搜索:
dpkg -l | grep {keywords}
dpkg -l | grep pdf
Run Code Online (Sandbox Code Playgroud)
Vik*_*nei 83
apt -qq list PACKAGE 也可用于检查是否安装了PACKAGE。
如果已安装,它将打印如下内容([installed]在行尾):
$ apt -qq list awscli
awscli/stable,now 1.4.2-1 all [installed]
Run Code Online (Sandbox Code Playgroud)
如果未安装,输出将是:
$ apt -qq list awscli
awscli/stable 1.4.2-1 all
Run Code Online (Sandbox Code Playgroud)
小智 48
用 dpkg
这个命令是 Debian 包管理器。
您可以列出所有已安装的软件包
dpkg -l
Run Code Online (Sandbox Code Playgroud)
您可以查看特定包的详细信息
dpkg -p packagename
Run Code Online (Sandbox Code Playgroud)
要了解它是否已安装,请使用
dpkg -s packagename | grep Status
Run Code Online (Sandbox Code Playgroud)
您可以了解哪个软件包包含您想要的软件
apt-cache search name*
Run Code Online (Sandbox Code Playgroud)
在你的情况下,你应该使用这个命令来搜索你想要的包名
apt-cache search virtual machine host
Run Code Online (Sandbox Code Playgroud)
小智 16
我找到了一种只用dpkg-query命令而不用管道来检查包安装的方法。
我在为 ansible playbook 编写任务时搜索了这样的解决方案。
你可以这样做:
/usr/bin/dpkg-query --show --showformat='${db:Status-Status}\n' '<your package name>'
Run Code Online (Sandbox Code Playgroud)
这只是做这件事的另一种方式。
sk8*_*her 14
更简单的解决方案:
现在有一个apt list列出可用软件包的--installed命令,该命令将仅显示已安装的软件包。您还可以搜索特定的包
apt list <package>
Run Code Online (Sandbox Code Playgroud)
或者只查看匹配的已安装包
apt list <package> --installed
Run Code Online (Sandbox Code Playgroud)
还有--upgradeable和--all-versions标志。
如果您不知道确切的包名称,可以使用apt search后跟部分来查看相关包的列表。这将允许您使用部分名称或正则表达式术语来过滤可用包列表,但它没有用于过滤的漂亮标志apt list。
另请参阅man apt以获取更多信息。
我正在写一个新答案,因为Tasksel '任务名称' 没有出现在dpkg或apt查询中。这意味着其他答案不完整(或错误)。
“我不记得是否勾选了‘虚拟机主机’复选框..”
重新运行后检查名称是否有星号sudo tasksel(如果正在运行,则检查“ i ” tasksel --list-tasks)。
如果你没有看到这个,那么你可能没有安装“tasksel meta-package ”。
“..如何检查我的服务器是否有相应的包?”
如果您想了解 Virtual Machine Host tasksel 元包下安装了什么:
tasksel --list-tasks
Run Code Online (Sandbox Code Playgroud)
(在你的情况下tasksel --list-tasks | grep virt就足够了)
这给出了正确的任务名称和是否安装的指示。
在你的情况下,这个任务名称是virt-host.
“虚拟机主机自带什么包?”
从最后一个命令中,找到 tasksel 任务名称。这是下一个命令所必需的:
tasksel --task-packages virt-host
Run Code Online (Sandbox Code Playgroud)
这列出了构成名称的单个 Tasksel 元包(由附加的“^”表示)。在你的情况下,它是virt-host^.
找到正确的元名称后,您可以使用 apt:
apt show virt-host^ | grep "Package:"
Run Code Online (Sandbox Code Playgroud)
(或者apt-cache show ...如果apt show不起作用。)
这将显示构成给定元包的所有包。
然后:
dpkg -l {each individual pkg name listed above}
Run Code Online (Sandbox Code Playgroud)
这将告诉您是否安装/卸载了单个软件包(由第二个字母表示:“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具有此元名称的命令。
如果你想删除 tasksel 包,这有点麻烦。请参阅此 Ask Ubuntu 答案或那里的任何其他答案。
请注意,“meta” apt 包与 Tasksel 包名称不匹配。请查阅Tasksel 社区页面了解更多信息。
小智 7
使用 tasksel(sudo apt-get install tasksel如果您还没有它)并运行tasksel --list-tasks.
tasksel 会打印出任务列表,i每个安装的任务旁边都会有一个,未安装的每个任务旁边都会有一个u。
如果要安装任务,请使用tasksel install <task>. 您要查找的任务的名称是virt-host。
软件选择项称为“任务”。
更新:
比解析输出更好的dpkg是使用dpkg-query输出。如果安装了该软件包,以下命令将installed自行打印:
dpkg-query --show --showformat='${db:Status-Status}\n' package-name
Run Code Online (Sandbox Code Playgroud)
再次抑制错误:
dpkg-query --show --showformat='${db:Status-Status}\n' package-name 2>/dev/null
Run Code Online (Sandbox Code Playgroud)
原来的:
根据josch的反馈,为了完全安装软件包,它的ii旁边应该带有 。因此,要找出答案的命令是:
# if it prints the package, it is installed
dpkg -l package-name | grep -E '^ii\s'
Run Code Online (Sandbox Code Playgroud)
现在,如果根本没有安装它,dpkg 可以打印错误,以防它过去从未安装过。
dpkg-query:找不到匹配的包
我们可以适当过滤以仅获取我们需要的信息。
installed如果安装了该软件包,则会打印以下内容,否则不会打印任何内容。
( ( dpkg -l package-name 2>&1 ) | grep -E '^ii' > /dev/null ) && echo installed
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
508684 次 |
| 最近记录: |