¿Cómo puedo determinar programáticamente qué versiones de Ubuntu todavía son compatibles?

11

Estaba escribiendo un script y necesitaba una lista de todas las versiones compatibles de Ubuntu.

Si alguno de ustedes conoce un archivo descargable que contenga todas las versiones con fechas o una lista simple de todas las versiones compatibles actualmente . Eso seria genial. Obviamente, tendrían que ser lugares donde Canonical los mantenga actualizados para que los guiones continúen funcionando en el futuro.

Y debería ser algo que funcione en versiones anteriores de Ubuntu, digamos cualquier versión compatible (lucid +), etc.

Martin Owens -doctormo-
fuente

Respuestas:

11

Puede usar launchpadlib para hacer esto. Por ejemplo, en 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

Para obtener más información sobre la API de launchpad, consulte la ayuda de la API de servicios web o la referencia de la API .

Jeremy Kerr
fuente
Además, para situaciones en las que necesita esta información fuera de línea, existe el paquete de información de distribución . (En lúcido, los comandos distro-info están en el paquete ubuntu-dev-tools .
tumbleweed
7

Puede utilizar el análisis de la salida de ubuntu-support-status. Eso enumerará qué software no es compatible y cuánto tiempo se admiten los demás. Por ejemplo, los servicios LAMP son compatibles durante 5 años en un escritorio LTS, incluso si el escritorio en sí solo es compatible durante tres años. Ese comando reflejará eso. También le mostrará que los paquetes de universo, multiverso, etc., no son compatibles en absoluto.

Aquí hay un ejemplo:

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
fuente
3

Para colocar todos los nombres compatibles en una lista en lugar de imprimirlos:

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
fuente
No soy un experto en Python, pero ¿esto agrega algo significativo sobre la respuesta de Jeremy?
Cesio
filtro seguido de un mapa? Parece que una lista de comprensión sería mejor: names = [ s.name for s in series_all if s.supported ]:)
Jeremy Kerr
Así, almacena los nombres de distancia en una var en lugar de imprimirlos, pensó que era digno de mención ya que rasqué la cabeza de un tiempo :) Sí, la versión Jks se ve un poco más delgado :)
Arand
-2

No es difícil ver el patrón en las fechas de lanzamiento. Si va a Wikipedia , puede ver que las versiones normales son compatibles durante 1 1/2 años, mientras que el LTS (Soporte a largo plazo, lanzado en abril de cada dos años) es compatible durante 3 años. Como hay un lanzamiento cada 6 meses (en abril y octubre) es fácil crear un script a partir de esa información.

Thomas
fuente
3
No lo es. Ubuntu es un sistema operativo, pero se admiten diferentes paquetes durante varios períodos de tiempo. Los paquetes que están en uso en Ubuntu Server son compatibles durante un período de tiempo más largo, incluso si los instala en Ubuntu Desktop. Eso significa que tendrá que saber que Python es compatible durante 5 años en el escritorio, por ejemplo. Esto no se puede descubrir fácilmente leyendo wikipedia. -1
Jo-Erlend Schinstad
Además, a partir de Ubuntu 13.04, todas las versiones que no son LTS ahora tienen solo 9 meses de soporte en lugar de 18. Cualquier información basada en el estado actual no está
preparada para el