Bash if 条件检查 ubuntu 包是否需要升级?

Bash if 条件检查 ubuntu 包是否需要升级?

我需要一个 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

如果有任何内容需要更新,它会每天通过邮件通知您。

相关内容