如何以编程方式确定仍支持哪些Ubuntu版本?


11

我正在编写脚本,并且需要列出所有当前受支持的Ubuntu版本。

如果你们中的任何一个知道一个包含所有带有日期的版本的可下载文件,或者一个所有当前受支持版本的简单列表。那太好了。显然,它们必须是Canonical使它们保持最新状态的位置,以便脚本可以在未来继续使用。

它应该可以在旧版本的Ubuntu上运行,例如任何受支持的版本(lucid +)等。

Answers:


11

您可以使用launchpadlib来执行此操作。例如,在python中:

#!/usr/bin/env python

from launchpadlib.launchpad import Launchpad

lp = Launchpad.login_anonymously('series-support-check')
for series in lp.projects['ubuntu'].series:
    print series.name, series.supported

有关启动板API的更多信息,请查看Web服务API帮助API参考


此外,对于需要脱机使用此信息的情况,还有distro-info软件包。(清楚地讲,distro-info命令位于ubuntu-dev-tools软件包中
。– tumbleweed

7

您可以使用解析来自的输出ubuntu-support-status。这将列出不支持哪些软件以及其他软件受支持的时间。例如,即使LTS桌面仅支持三年,它在LTS桌面上也支持LAMP服务5年。该命令将反映出这一点。它还将向您显示根本不支持来自Universe,Multiverse等的包。

这是一个例子:

you@ubuntu:~$ ubuntu-support-status
Support status summary of 'ubuntu':

You have 1873 packages (89.5%) supported until October 2014 (18m)

You have 14 packages (0.7%) that can not/no-longer be downloaded
You have 206 packages (9.8%) that are unsupported

Run with --show-unsupported, --show-supported or --show-all to see more details

3

要将所有受支持的名称放置在列表中而不是打印它们:

from launchpadlib.launchpad import Launchpad

launchpad = Launchpad.login_anonymously('series-support-check')
names = [ s.name for s in launchpad.distributions["ubuntu"].series if s.active ]

我不是Python专家,但这对Jeremy的回答是否有重大意义?
Cesium

过滤器后面是地图?听起来列表理解会更好:names = [ s.name for s in series_all if s.supported ]:)
杰里米·克尔

好吧,它把名称存储在一个var中而不是打印它们,所以这很值得一提,因为我挠了一下自己的头:)是的,JKs版本看起来更苗条了:)
2012年

-2

不难看出发行日期的模式。如果您访问Wikipedia,则可以看到正常发行版的支持期限为1 1/2年,而LTS(长期支持,每两年的4月发行)的期限为3年。由于每6个月发布一次(4月和10月),因此根据该信息构建脚本很容易。


3
不,不是。Ubuntu是一种操作系统,但是在不同的时间长度内支持不同的软件包。即使您将其安装在Ubuntu桌面上,也可以长时间支持Ubuntu Server中使用的软件包。举例来说,这意味着您必须知道Python在桌面上受支持5年。通过阅读维基百科很难发现这一点。-1
Jo-Erlend Schinstad 2011年

另外,从Ubuntu 13.04开始,所有非LTS版本现在仅具有9个月的支持,而不是18个月。基于当前状态的任何信息都不适用于未来
MestreLion
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.