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 distributions guardamos, 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]

3 comentarios:

  1. muy buenas
    hombre magnifico blog me entretenido y he aprendido mucho (muchisimo realmente) acerca de soporte tecnico (lo leo desde mi celular)

    pero hay algo que esta fuera de mis manos

    se que esto no tiene nada que ver con el tema pera no se con quien mas acudir (vivo metido en un pueblito como para salir a a una ciudad) es mas hago esto de mi celular (con mucho esfuerzo claro)

    he tratado en estos dias de instalar canaima-blobs en mi canaima 3.1
    pero me aparece esto

    Se ha producido un error

    Se proporcionaron los siguientes detalles:

    E: /var/cache/apt/archives/firmware-iwlwifi_0.36+wheezy.1_all.deb: intentando sobreescribir `/lib/firmware/iwlwifi-6000g2a-5.ucode', que está también en el paquete linux-3.2.0-3-686-pae-rtlwifi-driver 20121213

    he querido instalar los componente privativos (algo esencial por ejemplo para el bluetooh) se que necesita conexion de internet
    y lo he tratado hacer cerca de infocentro pero nada, he hecho y deshecho por todos lados y no he podido he leido tantos blogs (pero la gran mayoria hacen soporte es a unbutu y los dedicados a debian o canaima en su gran mayoria estan paralisados

    te agradeceria cualquier ayuda de antemano si nacesitas mas informacion o algo no dudes en pedirmela

    muchas gracias

    cuidese

    ResponderEliminar
  2. Hola como estas?? me alegra que le sea de mucha utilidad mi blogs, esa es la idea que las personas aprendan cada vez mas de soporte y redes, sobre su caso me surgen varias interrogantes, que repositorios tiene en el equipo?? usted instalo paquetes para su inalambrica???
    usted instalo un kernel diferente al que trae por defecto la version 3.1??

    ResponderEliminar
  3. hombre buenas disculpa la demora por responder y gracias por atender mi duda

    no, no he instalado nada a la inalambrica ( ni es mia como para ponerme a inventar jejeje ; ) )
    tampoco he instalado un kernel distinto al que tiene por defecto (aunque tengo pensado virtual box a mediano plazo)
    y para instalar canaima blobs he usado gestor de paquetes synaptic (bueno que repositorios precisamente utiliza no se como saberlo... T_T si me enseñas tal ves te lo diria)

    y bueno no se que mas puedo decirte, si necesitas mas informacion o algo no dudes en preguntar

    gracias por responder cuidase chao

    ResponderEliminar