通过dpkg-query安装缺失软件包的脚本

时间:2013-02-07 12:33:02

标签: bash shell ubuntu

我有一个脚本正在努力回应命令行中缺少的软件包,但是想要一个选项来添加控件以安装缺少的应用程序。这样做最好的方法是什么? apt-get install $ tmp?

#!/bin/bash

echo "Checking server for missing packages..."
tmp=$(dpkg-query -W -f='${Package} ${Status} \n' apache2 openssh-server php5 \
php5-cli php5-xsl php5-imap php5-curl | grep "no package found")

if [[ $tmp =~ "no package found" ]]
then
echo "working"
apt-get install $tmp
else
echo "foo"
fi

我试图在其中添加一个循环,但没有从$ tmp

获取输出

谢谢

1 个答案:

答案 0 :(得分:1)

如果您为系统上已安装的软件包命名,那么

apt-get不会抱怨。 鉴于这一事实,我不打算尝试过滤已安装的软件包,只使用以下单行程序。

apt-get install apache2 openssh-server php5 php5-cli php5-xsl php5-imap php5-curl

您可能希望添加-qy开关以便安静地运行,而不会问任何问题。