![Bash if 条件检查 ubuntu 包是否需要升级?](https://linux22.com/image/680184/Bash%20if%20%E6%9D%A1%E4%BB%B6%E6%A3%80%E6%9F%A5%20ubuntu%20%E5%8C%85%E6%98%AF%E5%90%A6%E9%9C%80%E8%A6%81%E5%8D%87%E7%BA%A7%EF%BC%9F.png)
我需要一个 bash 行来检查 ubuntu 包是否需要升级。
例如,我想使用 dpkg 或 apt-get 命令检查包“firefox”是否需要升级。
假设示例:
# Hypothetical example pseudo-code
if [[ $(firefox_needs_upgrade) ]]; then echo "Firefox needs upgrading";fi
答案1
##Simulate an upgrade and grep for the firefox package
##Feel free to replace ' firefox' with something more specific
RET=apt-get -s upgrade | grep firefox
if [ $ret -eq 0 ]
then
echo "I don't have access to a debian box right now"
fi
从:https://unix.stackexchange.com/questions/19470/list-available-updates-but-do-not-install-them
答案2
您可以使用命令检查 apt 下安装的程序的版本:
dpkg -l
您可以通过参考检查当前的包Ubuntu 软件包搜索或者,对于 apt 下的任何软件包(假设您已启用更新存储库),您可以使用 apt-get 命令来更新软件包信息并检查升级:
apt-get update
apt-get dist-upgrade
如果您未以 root 身份登录(通常应避免这种情况,您可能必须使用 sudo 来获得足够的权限):
sudo apt-get update
sudo apt-get dist-upgrade
检查 apt-get手册页以获得更多选项。
最后,您可以搜索(或订阅)Ubuntu 安全声明让自己实时了解所需的更新。
答案3
您正在寻找的命令是apt list --upgradable 2>/dev/null
。
并在您的示例中使用它:
package_name=firefox
if [[ $(apt list --upgradable 2>/dev/null | grep $package_name) ]]; then echo "${package_name} needs upgrading";fi
注意:2>/dev/null
用于抑制来自apt
答案4
尝试使用 apticron
apt-get install apticron
安装后在这里配置:
/etc/apticron/apticron.conf
如果有任何内容需要更新,它会每天通过邮件通知您。