Cree el repositorio de Deb con varias versiones del mismo paquete.

16

Quiero crear mi propio repositorio de Deb para almacenar algunos paquetes. He intentado reprepro y funciona bien, excepto por una característica fundamental. Reprepro no puede almacenar varias versiones del mismo paquete en el repositorio.

La capacidad de almacenar varias versiones del mismo paquete es esencial para mí, por lo que pregunto qué software puede hacer esto.

Aquí hay una pieza de preguntas frecuentes sobre reprepro que muestra que no puede hacerlo:

3.1) Can I have two versions of a package in the same distribution?
-------------------------------------------------------------------
Sorry, this is not possible right now, as reprepro heavily optimizes
at only having one version of a package in a suite-type-component-architecture
quadruple.
You can have different versions in different architectures and/or components
within the same suite. (Even different versions of a architecture all package
in different architectures of the same suite). But within the same
architecture and the same component of a distribution it is not possible.
bessarabov
fuente

Respuestas:

11

Según tengo entendido, mini-dinstall requiere archivos debian .changes al agregar paquetes. Ya que solo tenía archivos .deb disponibles encontré que acertadamente soporta múltiples versiones también.

Otra opción más ligera es la carga, que es un conjunto de scripts de shell para mantener un repositorio de Debian. Ahora (2017) he estado usando la carga durante tres años para mantener un repositorio pequeño pero actualizado activamente, con buenos resultados. Una característica clave era la capacidad de mantener múltiples versiones de un paquete.

Editar: Enlace actualizado al nuevo repositorio de carga ya que el anterior no se había actualizado desde 2014.

bohrax
fuente
1
Downvoter: ¿quieres elaborar?
bohrax
1
Tenga en cuenta que freightse ha bifurcado y ahora se mantiene en github.com/freight-team/freight : la versión original no se ha actualizado desde 2014.
Wolfgang
@WolfgangGracias, ¡actualicé el enlace en la respuesta!
bohrax
9

La solución es usar mini-dinstall para administrar repositorios de deb. No elimina la versión anterior del paquete del repositorio.

bessarabov
fuente
2
Esto parece ser cierto solo si "keep_old = 1" está configurado en mini-dinstall.conf. El valor predeterminado (según la página de manual y la experiencia reciente) es eliminar versiones anteriores. Probado con la versión 0.6.29ubuntu1.
pendor
2

Escuché cosas buenas sobre una alternativa, la carga:

https://github.com/rcrowley/freight

HTH, mistige

mistige
fuente
No estoy seguro de por qué esta respuesta fue rechazada, a menos que fuera por su falta de detalles. De hecho, la carga parece una alternativa viable para reprogramar, una que tengo la intención de probar ya que tengo la misma necesidad que el OP
killthrush
No soy el votante negativo, pero tal vez porque la carga ya se mencionó en mi respuesta hace un año. De todos modos, puedo garantizarlo como una opción viable. Lo he usado durante más de un año para un repositorio pequeño pero actualizado activamente. Sin embargo, este problema nos ha mordido: github.com/rcrowley/freight/pull/65
bohrax el
1
@bohrax: Parece que freightse bifurcó y ahora se mantiene en github.com/freight-team/freight .
Wolfgang
-1

Si está dispuesto a escribir el archivo de Paquetes usted mismo (por ejemplo, con un script personalizado), puede incluir varias versiones del mismo paquete y apt-get le permitirá instalar una versión específica con la sintaxis.

apt-get install packagename=version

Puede obtener toda la información que necesita para escribir este paquete con

dpkg-deb --info package.deb

y

md5sum package.deb

La actualización de apt-get también elegirá el número de versión más alto (en mis pruebas limitadas, al menos).

pfyon
fuente
Gracias por la respuesta, pero prefiero usar algún sistema que genere el archivo de paquetes.
bessarabov
Esto no responde la pregunta sobre la creación de un repositorio de paquetes con múltiples versiones del mismo paquete. Es una respuesta a otra pregunta.
gertvdijk
-2

Como le dice el software, los más antiguos se purgan cuando entra uno nuevo. Por lo general, esto se hace con múltiples repositorios. Al igual que Ubuntu y Debian tienen múltiples repos para estable e inestable o Natty, Oneiric, ..., necesitará tener múltiples repos.

Por lo general, los administradores de paquetes seleccionan la versión más reciente de un paquete, por lo que también sería difícil para los usuarios elegir.

Martin Ueding
fuente
1
Crear repositorios múltiples no resuelve mi problema. Necesito varias versiones del mismo paquete para estar en el mismo repositorio. Para aquellos que estén interesados, ¿por qué necesito esto? Aquí hay un tema con mi explicación: answers.launchpad.net/launchpad/+question/171452
bessarabov
Me temo que tiene que ver su problema desde un ángulo diferente ya que los repositorios regulares de Debian no tienen soporte para múltiples versiones.
Martin Ueding
2
Estas equivocado. Consulte el repositorio de Debian regular ftp.us.debian.org/debian/pool/main/p/perl y compruebe que hay varias versiones del mismo paquete para el mismo archivo.
bessarabov