- 22/11/2011
- 05:11 pm
- Canaima, Debian, Desarrollo, Software Libre
Normalmente, dentro de los procesos involucrados en la creación de sabores o distribuciones derivadas de Canaima (o Debian) necesitamos utilizar paquetes que no se encuentran en repositorios públicos de Debian, Ubuntu u otra distribución porque generalmente son paquetes de autoría propia, diseñados a nuestras necesidades.
En ese sentido, es buena idea hacer un repositorio local para guardar esos paquetes y así agilizar un poco más los procesos de desarrollo y pruebas de software. Además, si tienes la oportunidad de hacerlo público a través de un servidor web, podrías distribuir tus paquetes a otras personas o incluso hacer un sabor Canaima.
Primeramente necesitas instalar algunas aplicaciones. En una terminal de root (Aplicaciones > Accesorios > Terminal de Root) escribe el siguiente comando:
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 createsymlinksListo, 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.
Artículos Relacionados
Existen 0 opiniones acerca de esta entrada.