PPA y embalaje: tener versiones de paquetes para múltiples distribuciones

36

(cita del chat)

Obtuve un PPA en la plataforma de lanzamiento para paquetes fuente para un proyecto de bot IRC con el que estoy asociado (dado que es todo el empaquetado intermedio para las cosas entre lanzamientos, está clasificado como un PPA "experimental"). Pregunta: Ya he empaquetado las cosas para una compilación lúcida. ¿Alguna idea de cómo podría crear el mismo empaque, excepto empaquetarlo para disidente, y ponerlo en el mismo PPA en el que coloqué el empaque lúcido?

Thomas Ward
fuente

Respuestas:

42

Probablemente la forma más fácil es simplemente copiar los archivos binarios en Launchpad:

  1. Vaya a su PPA y haga clic en 'Ver detalles del paquete':

    ingrese la descripción de la imagen aquí

  2. Haga clic en 'Copiar paquetes':

    ingrese la descripción de la imagen aquí

  3. Seleccione los paquetes lúcidos:

    ingrese la descripción de la imagen aquí

  4. Seleccione 'Maverick' para la serie y elija 'copiar binarios existentes':

    ingrese la descripción de la imagen aquí

  5. Haga clic en 'copiar paquetes' y listo.

Nathan Osman
fuente
Muchas gracias. Sus instrucciones fueron acertadas . Muchas gracias por la rápida respuesta, también.
Thomas Ward
@ Mal: ​​No hay problema. Me alegro de poder ayudar!
Nathan Osman
44
¡NOTA PARA OTRAS PREGUNTAS QUE ENLACE A AQUÍ! ¡Copiar los binarios existentes NO FUNCIONA SIEMPRE para programas destinados a otras versiones de ubuntu! Consulte mi PPA de rkhunter y los registros de cambios de la versión Lucid para comprender lo que quiero decir: launchpad.net/~trekcaptainusa-tw/+archive/rkhunter/+packages
Thomas Ward
@ThomasWard: Buen punto: no siempre funciona.
Nathan Osman el
2
@ KhurshidAlam Perdón por la respuesta súper súper tardía. Eso fallará con un "Registro de cambios inválido", y como tal, debe etiquetar cada uno por separado cuando utilice un PPA con una versión diferente. [ launchpad.net/~nginx/+archive/stable ] ( launchpad.net/~nginx/+archive/stable ) es un buen ejemplo de esto, porque para hacerlo construir tengo que agregar la distribución a la versión para que se construya correctamente con todas las bibliotecas diferentes. (Mantengo los ppas del equipo nginx por ahora, por lo tanto, lo uso como ejemplo).
Thomas Ward
11

Si la copia de los archivos binarios para el paquete que está creando no funciona, deberá cargar un paquete fuente para cada versión de distribución editando el debian/changelogarchivo.

Cómo volver a empaquetar para otra versión de distribución

  1. Edite el debian/changelogarchivo en el directorio de su paquete fuente
  2. Cambie tanto la versión como la distribución de destino para reflejar qué distribución está creando, por

    ejemplo:nginx (1:1.4.1-0ubuntu1~preciseppa1) precise; urgency=low
  3. Reconstruir paquete fuente: debuild -S
  4. Subir .changesarchivo a su PPA:dput ppa:teward/nginx-stable-testing ../nginx_1.4.1-0ubuntu1~preciseppa1_source.changes

Si la compilación es exitosa, ¡felicidades, acabas de construir un paquete para esa distribución! De lo contrario, deberá verificar el registro de compilación en Launchpad y abordar cualquier problema que encuentre.

Referencias

TrinitronX
fuente
¡Esto es lo que hago! : D Los MOTU (repositorio de dioses del universo) explicaron esto cuando necesitaba hacer diferentes compilaciones nginxy otros programas en un PPA, y me ayudaron a resolver muchos de mis problemas. ¡Gracias por publicar esto! :)
Thomas Ward
Sí, pensé que esto sería información útil para documentar y poner a disposición de los nuevos empaquetadores, ya que puede haber una curva de aprendizaje abrupta para usar todas las herramientas de empaquetado de Debian, cargas de PPA, convenciones y depuración de compilaciones fallidas.
TrinitronX
En efecto. Sin embargo, no estoy cambiando la respuesta aceptada, porque en el momento de esta pregunta, no había necesidad de preocuparse por las diferentes bibliotecas disponibles en las diversas versiones de Ubuntu. Con nginxu rkhunterotros paquetes que soporto a menudo, hay un gran problema de dependencias que abordar (diferente depends:en el archivo de control y tal), por lo que siempre uso programversion-1~RELEASE0donde ~ RELEASE0 siempre es algún número con el lanzamiento dado. Debian a Ubuntu ese es el caso :)
Thomas Ward
Sí, las dependencias son definitivamente un punto de dolor para el backporting ;-) Estoy de acuerdo, la respuesta aceptada debería ser suficiente en la mayoría de los casos, y para los usuarios de repositorios de control de fuente de bazar, usar la receta bzr-builder de Launchpad también parece atractivo. Sin embargo, cuando se trata de paquetes con muchas dependencias, a veces tienes que crear un paquete personalizado para tu distribución de destino.
TrinitronX
Y retrocedo nginxde Debian Unstable a Precise, Quantal, Raring y Saucy (y Trusty en un PPA, pero también me aseguro de que Trusty, hasta que Debian se congele, tenga lo último de Debian fusionado en: P), para el equipo NGINX, pero, por desgracia, a veces hay errores que no puedo solucionar y Debian tiene que lidiar ... es por eso que tengo una buena relación con los mantenedores de Debian :)
Thomas Ward