Jak mogę programowo ustalić, które wersje Ubuntu są nadal obsługiwane?

11

Pisałem skrypt i potrzebowałem listy wszystkich obecnie obsługiwanych wersji Ubuntu.

Jeśli ktoś z was wie o plikach do pobrania, które zawierają wszystkie wersje z datami, lub prostej liście wszystkich obecnie obsługiwanych wersji. Byłoby świetnie. Oczywiście musiałyby to być lokalizacje, w których Canonical aktualizuje je, aby skrypty działały w przyszłości.

I powinno to być coś, co działa na starszych wersjach Ubuntu, powiedzmy, że każda obsługiwana wersja (lucid +) itp.

Martin Owens -doctormo-
źródło

Odpowiedzi:

11

Możesz to zrobić za pomocą launchpadlib. Na przykład w 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

Aby uzyskać więcej informacji na temat interfejsu API startera, zapoznaj się z pomocą interfejsu API usług internetowych lub odwołaniem do interfejsu API .

Jeremy Kerr
źródło
Ponadto w sytuacjach, w których potrzebujesz tych informacji w trybie offline, istnieje pakiet informacji dystrybucyjnych . (Mówiąc jasno, komendy distro-info znajdują się w pakiecie ubuntu-dev-tools .
tumbleweed
7

Możesz użyć parsowania danych wyjściowych ubuntu-support-status. Spowoduje to wyświetlenie informacji o tym, które oprogramowanie nie jest obsługiwane i jak długo obsługiwane są inne. Na przykład usługi LAMP są obsługiwane przez 5 lat na pulpicie LTS, nawet jeśli sam pulpit jest obsługiwany tylko przez trzy lata. To polecenie to odzwierciedli. Pokaże również, że pakiety z wszechświata, wieloświata itp. Nie są w ogóle obsługiwane.

Oto przykład:

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
Jo-Erlend Schinstad
źródło
3

Aby umieścić wszystkie obsługiwane nazwy na liście zamiast je drukować:

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 ]
arand
źródło
Nie jestem ekspertem od Pythona, ale czy to dodaje coś znaczącego w stosunku do odpowiedzi Jeremy'ego?
Cesium
filtr a następnie mapa? Wygląda na to, że lepiej byłoby zrozumieć listę: names = [ s.name for s in series_all if s.supported ]:)
Jeremy Kerr
No cóż, przechowuje nazwy w var zamiast drukować je, pomyślałem, że warto o tym wspomnieć, ponieważ trochę podrapałem się po głowie :) Tak, wersja JK wygląda na nieco szczuplejszą :)
arand
-2

Nietrudno dostrzec wzór w datach premiery. Jeśli przejdziesz do Wikipedii , zobaczysz, że normalne wydania są obsługiwane przez 1 1/2 roku, podczas gdy LTS (długoterminowe wsparcie, wydane w kwietniu co drugi rok) jest obsługiwane przez 3 lata. Ponieważ jest wydawana co 6 miesięcy (w kwietniu i październiku), łatwo jest zbudować skrypt na podstawie tych informacji.

Tomasz
źródło
3
Nie, nie jest. Ubuntu to jeden system operacyjny, ale różne pakiety są obsługiwane przez różne okresy czasu. Pakiety używane w Ubuntu Server są obsługiwane przez dłuższy czas, nawet jeśli zostaną zainstalowane w Ubuntu Desktop. Oznacza to, że musisz wiedzieć, że na przykład Python jest obsługiwany przez 5 lat na komputerze. Nie można tego łatwo odkryć czytając wikipedię. -1
Jo-Erlend Schinstad
Począwszy od wersji Ubuntu 13.04, wszystkie wersje spoza LTS mają teraz tylko 9 miesięcy wsparcia zamiast 18 lat. Wszelkie informacje oparte na obecnym statusie nie są zabezpieczone na przyszłość
MestreLion 16.01.18