Cómo reemplazar la versión de un sub-paquete .deb?
-
28-09-2019 - |
Pregunta
Necesito hacer un .deb para nuestro software, que incluye una copia de Drupal. He tenido que parchear Drupal, así que no puedo utilizar la acción de la distribución de Drupal. Quiero que el resultado final sea un archivo llamado drupal6-rs_6.16_all.deb, sino porque en mi archivo de control que es un sub-paquete, que es "heredar" la versión de mi paquete principal, por lo que terminan con un paquete drupal6-rs_6.0.6 _all.deb (6.0.6 es la versión de nuestra propia base de código).
Yo preferiría ser capaz de generar el paquete de Drupal desde dentro de la misma debian / * descripción, en lugar de hacer una por separado debian / * subárbol para Drupal solo.
Puede hacerse esto? Yo sé que con RPM es posible reemplazar la versión de un sub-paquete, pero si añado Versión: 6.16 a cabecera debian / control de la sub-paquete, que (a) más destacado de manera diferente en vim a las otras entradas de cabecera, y (b) tiene ningún efecto.
Solución
Me debería RTFM veces. Mira man dh_installchangelogs
. Hay una razón que tiene un sufijo s
a él!
Sí, parece que puede anula la versión de un paquete binario en un paquete fuente de múltiples binario.
Otros consejos
Dado que sólo hay un archivo de debian/changelog
por paquete fuente, creo que no puede haber una sola versión por paquete fuente. Si nos fijamos en el Sistema de seguimiento de paquetes de Debian, siempre se refiere a un número de versión - la del paquete fuente. El paquete binario (s) que el paquete fuente se basa, por lo tanto, tienen el mismo número de versión.
Esto le deja con dos opciones -
-
Hacer las cosas de la manera correcta - parche de Drupal (tal vez con
dpatch
, como el paquete de Drupal en Debian ya lo utiliza) y la licencia como un paquete fuente separada en sí misma. Poner un número sufijo versión (por ejemplo6.17-1yourcompany1
). A continuación, hacer un paquete para su propio software y tienen su software dependerá de la Drupal. Ahora puede dependerdrupal6 (=6.17-1yourcompany1)
para que sepa todo el mundo tiene en realidad tiene el parche. El uso de un repositorio personal para distribuir su software sería una buena idea. -
La otra alternativa que tienes es utilizar un método hacky. Dado que usted no desea utilizar una carpeta
debian/
separada, de un solo uso. Si usted hace dos binarios o uno (con todo lo fusionó con el paquete grande) del paquete fuente, que depende de usted para decidir qué número de versión que desea utilizar - de Drupal o el de su base de código .