如何检查是否已安装软件包(没有超级用户权限)?
在我们的大学,我们几乎可以安装任何我们想要的ubuntu软件包,但我们自己不是超级用户(我们需要请求安装软件包)。
对于某些库,要知道软件包是否已安装并不总是很容易。 有没有简单的方法/命令来检查这个?
apt-cache policy
我总是从命令行使用它:
dpkg -l | grep mysql
所以上面要求dpkg列出所有已安装的软件包,然后我只为那些在名称中有mysql的软件进行grep。
还有一个变体,这次使用aptitude:
aptitude show
标签完成也适用于此处。
您可以使用dselect。 它提供非su只读访问。
此外,dpkg -s提供了许多与包相关的详细信息。 例如”
userme:~$ dpkg-query -s sl Package: sl Status: unknown ok not-installed Priority: optional Section: games
您可以使用dpkg-query -s
dpkg-query -s
in scripts,因为如果没有安装
,它返回退出代码1,如果安装了
,则返回0。
在shell脚本中使用特定值作为var的示例(例如test.sh
)
#!/bin/sh PACKAGETOLOOKFOR="${1}" INSTALLED=$(dpkg -l | grep ${PACKAGETOLOOKFOR} >/dev/null && echo "yes" || echo "no") echo "${1} is installed ... ${INSTALLED}"
使其可执行并开始:
test.sh openssh-server
或者在脚本中执行任何操作