どの Ubuntu バージョンがまだサポートされているかをプログラムで判断するにはどうすればよいですか?

どの Ubuntu バージョンがまだサポートされているかをプログラムで判断するにはどうすればよいですか?

スクリプトを書いていて、現在サポートされている Ubuntu のすべてのバージョンのリストが必要でした。

もし皆さんが、日付付きのすべてのバージョンを含むダウンロード可能なファイル、またはすべてのバージョンの簡単なリストのいずれかを知っているなら、現在サポートされているバージョン。それは素晴らしいことです。当然、スクリプトが将来も機能し続けるように、Canonical がそれらを最新の状態に維持する場所である必要があります。

また、Ubuntu の古いバージョン、つまりサポートされているバージョン (lucid+) などで動作するものでなければなりません。

答え1

これを行うには 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リファレンス

答え2

の出力を解析するには、 を使用できますubuntu-support-status。これにより、サポートされていないソフトウェアと、他のソフトウェアがサポートされる期間が一覧表示されます。たとえば、デスクトップ自体は 3 年間しかサポートされない場合でも、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 ]

答え4

発売日のパターンを見るのは難しくありません。ウィキペディアを見ると、通常のリリースは 1 年半サポートされ、LTS (長期サポート、隔年 4 月にリリース) は 3 年間サポートされることがわかります。6 か月ごと (4 月と 10 月) にリリースがあるので、その情報からスクリプトを作成するのは簡単です。

関連情報