我正在尝试为 ubuntu 10.0.4 编写一个脚本来检查我的系统上的应用程序。我希望该脚本查看特定命名的应用程序是否已安装,如果已安装,则查看是否需要更新。我还希望脚本在未安装应用程序时自动安装该应用程序,或者在已安装应用程序时更新该应用程序。就像我需要安装 WINE 或 GIMP 一样。我不确定如何构造命令,但我知道我将使用 apt-get 或 yum 来查找应用程序。
答案1
你可以将这两个部分组合起来:
dpkg-query -W -f '${status} ${package} ${version}\n' |
sed -n 's/^install ok installed //p'
这将显示所有已安装软件包的名称,包括其版本。如果您不需要版本号,请省略 ${version} 部分。
然后,运行 apt-get update 来获取更新的软件包列表,并且:
/usr/lib/update-notifier/apt-check -p
这将告诉您有可用更新的软件包的名称。
一个想法是(不要逐字理解,我只是提供一个想法):
#!/bin/bash
$first_command > installed_packages
$second_command > packages_with_updates
if (grep $YOUR_PACKAGE installed_packages); then
echo "Package is installed"
if (grep $YOUR_PACKAGE packages_with_updates); then
sudo apt-get -q -q update #apt-get runs in quiet mode to avoid lots of output
echo "Update available for package"
#Whatever you need to update the package here
fi
else
echo "Package not installed, installing..."
#whatever you need to do to install here
fi