miércoles, 21 de mayo de 2014

Instalación y Configuración de reprepro para la creación de repositorios.

1.- Instalar reprepro.
Lo primero instalar reprepro y apache2

# apt-get install reprepro apache2

2.- Reprepro necesita que tengamos apache para distribuir los paquetes del repositorio a los clientes.
Una vez instalados los paquetes, creamosel directorio principal de nuestros repositorios y el directorio de configuración de una vez.

# mkdir -p /var/www/repositorios/conf

3.- A continuación vamos a crear una clave con la que firmaremos el repositorio:

cd /var/www/repositorio $ gpg --gen-key

gpg nos pedirá que seleccionemos el tipo de clave que deseamos crear. Elegiremos la opción (4) RSA (solo firmar).

Lo siguiente que nos preguntará gpg es de que tamaño queremos crear la clave y por defecto nos ofrece un tamaño de 2048. Le damos aceptar.

Luego nos preguntará por el periodo de validez de la clave y por defecto nos ofrecerá la opción 0 = la clave nunca caduca. Procedemos a elegir la opción por defecto.

Nos preguntará si es correcto. Respondemos que sí (s).

Nos preguntará el nombre y apellido, aquí procedes a colocar tus nombres y tus apellidos.

Nos solicitara una dirección de correo, aquí procedes a colocar tu dirección de correo electrónico.

Nos ofrecerá la posibilidad de poner un comentario, solo tecleamos “enter” para dejarlo vacío.

Para finalizar, luego de haber colocado todos los datos correctamente, tecleamos la letra (V) de (V)ale.

Por ultimo nos pedirá que coloquemos una frase de contraseña. La introducimos y repetimos cuando nos lo pida.

Al final nos mostrara la clave generada. Si se nos ha escapado por lo q sea y no la hemos visto, ejecutamos lo siguiente:

$ gpg list-keys

ahora vamos a crear un fichero donde vamos a definir las distribuciones con las que vamos a trabajar:

# cd /var/www/repositorios/conf
# nano distributions


Aquí vas a llenar el archivo con los siguientes datos:
  1. 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, Debian, Ubuntu, Fedora).
  2. Label: Etiqueta de la distribución o sabor. Generalmente se utiliza el mismo valor de Origin.
  3. Codename: Nombre código de la distribución o sabor (p. ej: aponwao, roraima, auyantepui, wheezy, squeeze, lenny).
  4. Suite: Nombre del estado de desarrollo de la distribución (p. ej: estable, pruebas, desarrollo).
  5. Version: Versión de la distribución o sabor.
  6. Pull: Distribución desde donde se actualizan los paquetes.
  7. Description: Descripción de la distribución.
  8. Architectures: Arquitecturas soportadas por la distribución o sabor.
  9. Components: Componentes o secciones en las que se divide el repositorio (p. ej: main, contrib, non-free).
  10. SignWith: Código de la Llave pública GPG o correo asociado con que se firma el repositorio.
  11. DebIndices: Tipos de Índices a generar.

Se debe agregar un bloque de estos por cada estado de desarrollo de la distribución. Por ejemplo, el archivo conf/distributions del repositorio de Canaima 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 tengamos todo lo anterior en el archivo distributionsguardamos, entramos en el directorio del repositorio:

# cd /var/www/repositorio

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

# reprepro -VVV export

Si al ejecutar el comando anterior presenta algún problema con la clave, puedes ejecutar el comando anterior con el parametro --ask-passphrase:


# reprepro --ask-passphrase -VVV export

Luego el siguiente comando creará los enlaces simbolicos Codename > Suite:

# reprepro -VVV createsymlink

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 seria la siguiente /var/www/repositorio) y ejecutar el siguiente comando:

Ejemplo:
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.

Ejemplo:
reprepro includedeb auyantepui /home/soporte/canaima-desarrollador_3.0-1_all.deb

# reprepro --ask-passphrase includedeb squeeze /home/soporte/canaima-desarrollador_3.0-1_all.deb

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

Ejemplo:
# 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:

Ejemplo:
# reprepro include auyantepui /home/soporte/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. 

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.

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]

No hay comentarios:

Publicar un comentario