0

Making binary package repositories reprepro

Making binary package repositories reprepro

Normally, within the processes involved in creating flavors or distributions derived from Canaima (or Debian) need to use packages that are not in public repositories of Debian, Ubuntu or other distributions because they are generally packages own authorship , designed to our needs .

In that sense, it is good idea to make a local repository for storing such packets a little more streamline development processes and software testing. Also, if you have the opportunity to go public through a web server, you could distribute your packages to others or even do a taste Canaima .

First you need to install some applications. In a root terminal (Applications> Accessories> Root Terminal) type the following command:

 aptitude install reprepro pinentry-qt devscripts apache2

Una vez instaladas, en la misma terminal de root coloca el siguiente comando para crear el esqueleto del repositorio:

 mkdir -p / var / www / repositorio / conf

Accede a la carpeta que acabas de crear y abre un archivo nuevo de nombre “distributions” con tu editor de texto favorito. Yo usaré vim.

 cd / var / www / repositorio / conf
vim distributions

Acá vas a llenar el archivo con los siguientes datos:

Origin : Nombre de la distribución o sabor. Sólo usar caracteres alfanuméricos y guiones, nada de espacios o caracteres especiales. (p. ej.: Canaima)
Label : Etiqueta de la distribución o sabor. Generalmente se utiliza el mismo valor de Origin.
Codename : Nombre código de la distribución o sabor (p. ej: aponwao , roraima , auyantepui ).
Suite : Nombre del estado de desarrollo de la distribución (p. ej: estable , pruebas , desarrollo ).
Version : Versión de la distribución o sabor.
Pull: Distribución desde donde se actualizan los paquetes.
Description : Descripción de la distribución.
Architectures : Arquitecturas soportadas por la distribución o sabor.
Components : Componentes o secciones en las que se divide el repositorio (p. ej: main , contrib , non-free ).
SignWith: Código de la Llave pública GPG o correo asociado con que se firma el repositorio.
DebIndices: Tipos de Índices a generar.

Debes agregar un bloque de éstos por cada estado de desarrollo de la distribución. Por ejemplo, el archivo conf/distributions del repositorio de Canaima para 3.0 es el siguiente:

Origin: Canaima
Label: Canaima
Suite: antiguo
Codename: aponwao
Version: 2.1
Pull: estable
Architectures: i386 amd64 source
Components: usuarios
Description: Canaima GNU / Linux
SignWith: repositorios @ canaima.softwarelibre.gob.ve
DebIndices: Packages Release . .gz .bz2
 
Origin: Canaima
Label: Canaima
Suite: estable
Codename: roraima
Version: 3.0
Pull: pruebas
Architectures: i386 amd64 source
Components: usuarios
Description: Canaima GNU / Linux
SignWith: repositorios @ canaima.softwarelibre.gob.ve
DebIndices: Packages Release . .gz .bz2
 
Origin: Canaima
Label: Canaima
Suite: desarrollo
Codename: auyantepui
Version: 3.1
Architectures: i386 amd64 source
Components: usuarios
Description: Canaima GNU / Linux
SignWith: repositorios @ canaima.softwarelibre.gob.ve
DebIndices: Packages Release . .gz .bz2

Cuando hayas armado el archivo conf/distributions , colocate en el directorio /var/www/repositorio :

 cd / var / www / repositorio

Y ejecuta el siguiente comando para terminar de crear el esqueleto del repositorio:

reprepro -VVV export 

Luego el siguiente comando creará los enlaces simbólicos Codename > Suite:

reprepro -VVV createsymlinks

Listo, tu repositorio se encuentra listo para que puedas agregarle paquetes.

Agregando paquetes binarios y fuentes

Para agregar paquetes binarios (.deb) debes ubicarte en la carpeta raíz del repositorio (en nuestro ejemplo /var/www/repositorio ) y ejecutar el siguiente comando:

reprepro includedeb [ DISTRIBUCIÓN ] [ PAQUETE ] 

En donde [DISTRIBUCIÓN] será la rama de desarrollo donde se desea incluir y [PAQUETE] la ruta completa a donde se encuentra el paquete .deb dentro de la computadora. Por ejemplo:

reprepro includedeb auyantepui / home / huntingbears / canaima-desarrollador_3.0- 1 _all.deb

Para el caso de los paquetes fuente, el comando es el siguiente:

reprepro include [ DISTRIBUCIÓN ] [ CHANGES ] 

En donde [DISTRIBUCIÓN] será la rama de desarrollo donde se desea incluir y [CHANGES] la ruta completa a donde se encuentra el archivo .changes producto del empaquetamiento (deben estar también en la misma carpeta el resto de los archivos que forman parte de los paquetes fuentes: dsc, .orig.tar.gz, .debian.tar.gz, más el paquete binario .deb). Por ejemplo:

reprepro include auyantepui / home / huntingbears / canaima-desarrollador_3.0- 1 _all.changes

Eliminando paquetes

Eliminar un paquete de una rama es bastante sencillo:

reprepro remove [ DISTRIBUCIÓN ] [ PAQUETE ] 

En donde [DISTRIBUCIÓN] es la rama de desarrollo de donde se desea remover el paquete y [PAQUETE] el nombre (sólo el nombre) del paquete que se desea remover. Por ejemplo:

reprepro remove auyantepui canaima-desarrollador

Usando el repositorio

Puedes probar los paquetes binarios del repositorio colocando ésta linea en tu archivo /etc/apt/sources.list :

deb http: // localhost / repositorio [ DISTRIBUCIÓN ] [ COMPONENTES ] 

En donde [DISTRIBUCIÓN] es la rama de desarrollo donde se encuentran los paquetes que deseas probar y [COMPONENTES] los componentes que creaste para tu distribución en el archivo conf/distributions . Por ejemplo:

deb http: // localhost / repositorio auyantepui usuarios

También puedes probar los paquetes fuentes del repositorio si agregas la siguiente línea igualmente en tu archivo /etc/apt/sources.list :

deb-src http: // localhost / repositorio [ DISTRIBUCIÓN ] [ COMPONENTES ] 

Si posees una IP fija o un nombre de dominio asignado a tu computadora o servidor, puedes publicarlo a las demás personas pidiéndoles que agreguen la línea en sus archivos /etc/apt/sources.list :

deb http: // TU-DIRECCIÓN-IP / repositorio [ DISTRIBUCIÓN ] [ COMPONENTES ] 

ó

deb http: // TU-DOMINIO / repositorio [ DISTRIBUCIÓN ] [ COMPONENTES ] 

Saludos a todos, espero les sea de utilidad.



ACCIONES

Soy un joven venezolano al que le gusta mucho leer y escribir. Ingeniero de Telecomunicaciones, amante de la tecnología, y el Software Libre. Comencé a trabajar como desarrollador de Canaima GNU/Linux en 2009, y ahora se ha convertido en uno de mis pasatiempos más entretenidos. Si te gusta lo que escribo por acá, te invito a seguirme en twitter , facebook , o las actualizaciones por RSS .

ACERCA DE LUIS ALEJANDRO

Existen 0 opiniones acerca de esta entrada.

Puedes emitir tus opiniones en el siguiente Formulario.


 




El campo "Página Web" es opcional. Tu correo no será publicado.

ACCIONES

Soy un joven venezolano al que le gusta mucho leer y escribir. Ingeniero de Telecomunicaciones, amante de la tecnología, y el Software Libre. Comencé a trabajar como desarrollador de Canaima GNU/Linux en 2009, y ahora se ha convertido en uno de mis pasatiempos más entretenidos. Si te gusta lo que escribo por acá, te invito a seguirme en twitter , facebook , o las actualizaciones por RSS .

ACERCA DE LUIS ALEJANDRO

 

Existen 0 opiniones acerca de esta entrada.

Puedes emitir tus opiniones en el siguiente Formulario.


 




El campo "Página Web" es opcional. Tu correo no será publicado.