3 votos

Comprobar si hay actualizaciones de la lista de un paquete Debian

El programa de instalación

Tengo un Debian Squeeze host que puedo usar para construir un multilenguaje proyecto (python, java, php...) y generar paquetes personalizados (debian y RPM) de forma automática (a través de jenkins)

El problema

El objetivo de la distribución de los paquetes Debian Etch, Lenny, Squeeze. Pero nuestro proyecto tiene algunos nativos de las dependencias que están disponibles sólo a través de la DebianRelease + 1 repositorio (he.e Lenny + 1 == Squeeze, Squeeze + 1 == Wheezy). Por ejemplo, necesitan de la jetty paquetes de Squeeze en Lenny, y el cyrus-imapd-2.4 paquetes de Wheezy en Squeeze. Alguna info adicional :

  • Algunos podemos simplemente "backport a mano' por el reflejo de la DebianRelease + 1 paquetes a nuestros propios repositorios. Por ejemplo, el jetty paquete de Apriete se ejecuta bien en Lenny, ya que no necesita un s**tload de dependencias adicionales

  • Sin embargo necesitamos reconstruir algunos paquetes. Por ejemplo, cyrus-imapd-2.4 de Wheezy tiene un montón de dependencias insatisfechas en Squeeze. Así que tenemos que reconstruir en Squeeze y luego subirlo a nuestra repo.

La pregunta

Necesito tener una manera sencilla de saber si son las actualizaciones de los paquetes adicionales (tanto "normal" y la "seguridad" de las actualizaciones). Yo podría escribir un simple script que se ejecuta semanalmente, obtener algunos parámetros desde un archivo, y generar un informe de actualización. Digamos que el archivo se parece a esto:

jetty:squeeze
cyrus-imapd-2.4:wheezy

El script se debe ejecutar como usuario normal no desordenar el sistema de configuración de apt y emitir los comandos apropiados para generar el informe.

Hace Debian tiene algunos construido-en apt-* comandos y opciones que se dedican a ese tipo de problema que podría usar para escribir este guión ? Si no, alguien puede pensar en otra solución limpia para lograr lo que necesito ?

2voto

dfc Puntos 853

Sí. Puedo usar apt-show-versions para esto. La instalación es tan fácil como:

# apt-get install apt-show-versions

En mi /etc/apt/apt.conf tengo:

APT::Default-Release "unstable";

En /e/a/fuentes.lista tengo entradas para inestables, experimental y en otros momentos temporales repos, tales como la edad de emacs-instantánea de archivo.

Aquí es un ejemplo de como-v con un paquete de experimentación:

# apt-show-versions -a xmonad
xmonad 0.10.1~darcs20120707-1 install ok installed
xmonad 0.10-4+b2              unstable     192.168.10.1:3142
xmonad 0.10.1~darcs20120707-1 experimental 192.168.10.1:3142
xmonad/experimental uptodate 0.10.1~darcs20120707-1

Aquí está un ejemplo de un paquete que está en inestable y experimental, pero sólo tengo la versión inestable:

# apt-show-versions -a zsh
zsh 4.3.17-1 install ok installed
zsh 4.3.17-1 unstable     192.168.10.1:3142
zsh 5.0.0-2  experimental 192.168.10.1:3142
zsh/unstable uptodate 4.3.17-1

Puedo usar apt-show-versions para ver si hay actualizaciones en el experimental:

# apt-show-versions |grep manually| head
autogen/experimental *manually* upgradeable from 1:5.16-2 to 1:5.16.2-2
iproute/experimental *manually* upgradeable from 20121001-1 to 20121001-2
iproute-doc/experimental *manually* upgradeable from 20121001-1 to 20121001-2

También es agradable, ya que le mostrará los paquetes que no están disponibles en ningún repositorio:

#apt-show-versions |grep -v uptodate |grep "No available"
brscan2 0.2.5-1 installed: No available version in archive
dfc-depends 1.0 installed: No available version in archive
google-chrome-unstable 24.0.1297.0-r162078 installed: No available version in archive

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: