Crear tu propio repositorio de paquetes

  • Categoría: Linux
  • Publicado hace más de 3 años
Crear tu propio repositorio de paquetes deb con Reprepro

 
 

 
 
 
 
En ocasiones necesitamos disponer de un repositorio de paquetes propio con el que instalar una serie de paquetes que no se encuentran en los repositorios de nuestra organización ni en los de nuestra distribución. En este caso, podemos recurrir a reprepro.
 
Vamos a ver cómo podemos instalar y utilizar reprepro en nuestra organización.
 
Instalar reprepro.
Lo primero es instalar los paquetes reprepro y apache2:
 

# apt-get install reprepro apache2

 
Reprepro necesita que tengamos apache para distribuir los paquetes del repositorio a los clientes.
 
Una vez instalados los paquetes, creamos el directorio principal de nuestro repositorio y el directorio de configuración de una vez. Por ejemplo:
 

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

 
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 (sólo firmar).
 
Lo siguiente que nos preguntará gpg es de qué tamaño queremos crear la clave y por defecto nos ofrece un tamaño de 2048. Lo aceptamos.
 
Nos preguntará por el período de validez de la clave y por detecto nos ofrecerá la opción 0 = la clave nunca caduca. Elegimos la opción por defecto.
 
Nos preguntará si es correcto. Respondemos que sí (s).
 
Nos preguntará el nombre y apellidos. Introducimos nuestro nombre y apellidos.
 
Nos pedirá que introduzcamos nuestra dirección de correo. Así que la introducimos.
 
Nos ofrecerá la posibilidad de poner un comentario. Pulsamos Enter para dejarlo vacío.
 
Para terminar, suponiendo que hemos introducido todos los datos correctamente, pulsaremos (V) de (V)ale.
 
Y, ya por último, nos pedirá que introduzcamos una frase de contraseña. La introducimos y repetimos cuando nos lo pida.
 
Al final nos mostrará la clave generada. Si se nos ha escapado por lo que sea y no la hemos visto, ejecutamos:
 

$ gpg --list-keys

/home/enam0000/.gnupg/pubring.gpg

---------------------------------

pub   1024D/153F5386 2009-12-01

uid                  Esteban M. Navas Martín (Administrador Informatico) 

sub   2048g/83061C03 2009-12-01



Copiamos el identificador de la clave pública para introducirlo 
posteriormente en el fichero /var/www/iesvalledeljerte3/conf/distributions. 
En mi caso: 153F5386[code]



Exportamos la clave pública en un archivo y la copiamos en el directorio 
principal del repositorio:



[code]$ gpg  --armor --export 153F5386 > /var/www/iesvalledeljerte3/
iesvalledeljerte3.asc

A continuación creamos un fichero donde vamos a definir las distribuciones con las que vamos a trabajar:
 

$ nano /var/www/iesvalledeljerte3/conf/distributions



Origin: IES Valle del Jerte 

Label: Debian Squeeze packages

Suite: squeeze

Codename: squeeze

Architectures: i386 amd64

Components: main

Description: Paquetes adicionales para el IES

DebIndices: Packages Release . .gz .bz2

SignWith: 153F5386[/quote]



Cuando tengamos todo lo anterior, entramos en el directorio del repositorio:



Cita: Mostrar




Con el siguiente contenido:



[quote]deb http://servidor/repositorio [DISTRIBUCIÓN] [COMPONENTES]

 
Siguiendo con el ejemplo en distribución especificamos squeeze, tal y como indicamos en el archivo de configuración /var/www/iesvalledeljerte3/conf/distributions y como componentes main (no hemos creado otro).
 

deb http://servidor/iesvalledeljerte3 squeeze main

 
Seguidamente descargamos la clave pública de nuestro repositorio, que ya subimos al servidor en el cliente y la añadimos mediante apt-key:
 

# wget http://servidor/iesvalledeljerte3.asc

# apt-key add iesvalledeljerte3.asc 

 
Por último, haremos un apt-get update en el cliente para actualizar la lista de paquetes y ya podremos instalar lo que queramos desde nuestro repositorio.
 
Listar los paquetes disponibles en nuestro repositorio

Si queremos ver la lista de paquetes que tenemos agregados en nuestro repositorio, tan sólo tenemos que ejecutar:
 

# reprepro list "rama-de-repositorio"

 
Por ejemplo: Si quiero ver los paquetes que tengo en la rama squeeze de mi repositorio, ejecuto el siguiente comando:
 

# reprepro list squeeze

 
Y obtendré una lista en la que puedo ver los paquetes, la sección en la que están incluidos y la arquitectura:
 

squeeze|main|i386: firefox 18.0-2

squeeze|main|i386: iceweasel 17.0-1~bpo60+1

squeeze|main|i386: iceweasel-l10n-es-es 1:17.0-1~bpo60+1

squeeze|main|i386: java-package 0.51~exp1

squeeze|main|i386: nixnote 1.4

squeeze|main|i386: oracle-java7-jre 7.11

squeeze|main|i386: pkg-mozilla-archive-keyring 1.1

squeeze|main|i386: skype 4.0.0.7-1

squeeze|main|i386: xulrunner-17.0 17.0-1~bpo60+1

squeeze|main|amd64: firefox 18.0-2

squeeze|main|amd64: iceweasel-l10n-es-es 1:17.0-1~bpo60+1

squeeze|main|amd64: java-package 0.51~exp1

squeeze|main|amd64: libsqlite3-0 3.7.13-1~bpo60+1

squeeze|main|amd64: nixnote 1.4

squeeze|main|amd64: oracle-java7-jre 7.11

squeeze|main|amd64: pkg-mozilla-archive-keyring 1.1

 
Agregar paquetes sin sección o prioridad a nuestro repositorio
A veces queremos añadir ciertos paquetes a nuestro repositorio y éstos carecen de información de sección a la que pertenecen o prioridad, por ejemplo. O incluso, puede que tengan dicha información pero queremos cambiarla.
 
Para especificar la sección a la que queremos añadir un paquete, usamos el parámetro -S o --section. Por ejemplo: Imaginemos que quiero añadir los paquetes de libreoffice descargados de la web oficial de LibreOffice, que carecen de información de sección:
 

# reprepro --ask-passphrase -S main includedeb squeeze /var/www/descargas/
libreoffice4/*.deb

Y si además, quiero cambiar la prioridad, usaré el parámetro -P o --priority. Por ejemplo: Imaginemos que, además de cambiar la sección quiero asignar una prioridad de 600 a los paquetes que voy a añadir a mi repositorio. No tendría más que hacer lo siguiente:
 

# reprepro --ask-passphrase -S main -P 600 includedeb squeeze /
var/www/descargas/libreoffice4/*.deb


Crear nuestro propio repositorio de paquetes con Reprepro
Crear tu propio repositorio de paquetes
10 Puntos Score: 10/10
Visitas: 564 Favoritos: 1
Ver los usuarios que votaron...
1 Comentarios Crear tu propio repositorio de paquetes
Que tal amigo, le hiciste honor a tu nick  .... que aportazo. Por favor decime que se puede hacer con opensuse   . Un saludo cordial.
Para dejar un comentario Registrate! o.. eres ya usuario? Accede!