![如何检查非测试版但可能不是 LTS 的发布更新?](https://linux22.com/image/1084784/%E5%A6%82%E4%BD%95%E6%A3%80%E6%9F%A5%E9%9D%9E%E6%B5%8B%E8%AF%95%E7%89%88%E4%BD%86%E5%8F%AF%E8%83%BD%E4%B8%8D%E6%98%AF%20LTS%20%E7%9A%84%E5%8F%91%E5%B8%83%E6%9B%B4%E6%96%B0%EF%BC%9F.png)
我有一个 cron 任务用于检查新版本。我想确保当新版本完成测试并准备安装时,它会给我发送电子邮件。我想升级到长期支持 (LTS) 版本和非 LTS 版本。是否有命令可以告诉我这样的版本可用?
我尝试使用do-release-upgrade -c -q
,它告诉我有关新版本的信息除非我目前使用的是 LTS,下一个版本是不是长期支持服务, (如此处所述)。
我尝试使用do-release-upgrade -d -c -q
。它告诉我有关非 LTS 版本的信息,但它也告诉我有关测试版的信息。例如,如果我现在使用它,它会告诉我它15.04
可用,但实际上它尚未完全发布,(如此处所述)。
命令告诉我什么全部已完全发布的版本,无论是否是 LTS?
答案1
我仔细研究了 的代码do-release-upgrade
。它似乎从http://changelogs.ubuntu.com/检查新版本。它会根据提供的命令行选项从那里下载不同的文件。适合我需要的文件是http://changelogs.ubuntu.com/meta-release
我没有看到任何可以让 do-release-upgrade 下载该文件的选项,但是使用一些命令行工具很容易做到:
currentrelease=`lsb_release -r | grep -oE '[0-9]{2}\.[0-9]{2}'`
availablerelease=`curl -s http://changelogs.ubuntu.com/meta-release | grep Version | tail -n 1 | grep -oE '[0-9]{2}\.[0-9]{2}'`
if [ "$currentrelease" != "$availablerelease" ]
then
echo "New release '$availablerelease' available. To upgrade use:"
echo " sudo do-release-upgrade -d -f DistUpgradeViewNonInteractive"
fi