如何使用apt-get创建仅包含安全更新的列表?

我正在尝试使用apt-get创建一个仅包含Ubuntu系统中可用的安全更新的列表。
我非常了解这篇文章如何通过命令行检查仅有安全更新?,但是它似乎只在/etc/apt/sources.list.d/中没有任何源列表时才起作用。
到目前为止,我的代码看起来像这样。
#!/bin/bash
set -x

setup(){
        APTSRC="/etc/apt/sources.list"
        SECSRC="/etc/apt/secsource.list"
}

cleanup(){
        rm ${SECSRC}
}

get_updates(){
    grep trusty-security ${APTSRC} > ${SECSRC}
    apt-get -o Dir::Etc::sourcelist="${SECSRC##/*/}" -o Dir::Etc:sourceparts="." update &&  apt-get --assume-no upgrade
}

setup
get_updates
cleanup

它大部分都能正常工作,但是因为我在/etc/apt/sources.list.d/中有一些源列表,它会将这些列表包含进来。有没有办法通过命令行选项来避免这种情况?
另外,我想补充一下,我们不会设置自动更新。我们只想要一个更新列表。

我相信你可以利用这个答案:http://askubuntu.com/a/443891/1736 来拼凑出一些东西。它给出了所有已安装的有可用更新的软件包的链接。通过一个for循环遍历结果,并检查$(apt-cache policy $PACKAGE | grep trusty-security)是否为空。 - mniess
1个回答

安装软件包 apt-show-versions 并运行
apt-show-versions | grep upgradeable | grep security

要获得这样的列表:
firefox:amd64/trusty-security 33.0+build2-0ubuntu0.14.04.1 upgradeable to 34.0+build2-0ubuntu0.14.04.1
firefox-locale-en:amd64/trusty-security 33.0+build2-0ubuntu0.14.04.1 upgradeable to 34.0+build2-0ubuntu0.14.04.1

这并不总是列出所有的更新。请参阅https://askubuntu.com/questions/774805/how-to-get-a-list-of-all-pending-security-updates。 - Reinier Post