Crear repositorio apto local con entorno de prueba

Crear repositorio apto local con entorno de prueba

Estoy intentando crear un repositorio apto con reprepro, que es muy sencillo en su mayor parte. He estado usando este artículo como referencia porque me gustó la estructura de tener un árbol de preparación.

http://vincent.bernat.im/es/blog/2014-local-apt-repositories.html

Sin embargo, parece que no puedo entender lo que probablemente sea muy simple. Usando un ejemplo de configuración/distribuciones del artículo siguiente, me confunde el hecho de que cuando importo un paquete, siempre solo va a principal. ¿No existe ningún directorio llamado precision-staging y precision-prod? Lo que estoy tratando de hacer es tener un lugar separado para poner los paquetes que no han sido probados y otro para producción en el mismo repositorio. (/opt/packages/pool/trusty-prod, /opt/packages/pool/trusty-stage)

Podría señalar a los clientes a cualquiera de ellos según sea necesario a través de /etc/apt/sources.list.d/ con Puppet.

¿Me estoy perdiendo por completo cómo se haría esto o no entiendo este artículo?

Dailymotion Precise packages (staging)
Origin: Dailymotion 
Label: dm-staging   
Suite: precise-staging
Codename: precise-staging
Architectures: i386 amd64 source
Components: main role/dns role/database role/web # ➊
Description: Dailymotion Precise staging repository
Contents: .gz .bz2
Tracking: keep
SignWith: yes
NotAutomatic: yes # ➋
Log: packages.dm-precise-staging.log
 --type=dsc email-changes

Dailymotion Precise packages (prod)
Origin: Dailymotion # ➌
Label: dm-prod      # ➌
Suite: precise-prod
Codename: precise-prod
Architectures: i386 amd64 source
Components: main role/dns role/database role/web # ➊
Description: Dailymotion Precise prod repository
Contents: .gz .bz2
Tracking: keep
SignWith: yes
Log: packages.dm-precise-prod.log

Respuesta1

Hay 4 pasos para configurar un repositorio simple para usted

1.Instale dpkg-dev
2.Coloque los paquetes en un directorio
3.Cree un script que escanee los paquetes y cree un archivo que apt-get update pueda leer
4. Agregue una línea a su lista de fuentes apuntando a su repositorio

Instalar dpkg-dev

Escriba una terminal

sudo apt-get install dpkg-dev

El directorio

Crea un directorio donde guardarás tus paquetes. Para este ejemplo, usaremos

 /usr/local/mydebs.  


sudo mkdir -p /usr/local/mydebs

Ahora mueva sus paquetes al directorio que acaba de crear.

Los paquetes descargados previamente generalmente se almacenan en su sistema en el directorio /var/cache/apt/archives. Si ha instalado apt-cacher, tendrá paquetes adicionales almacenados en su directorio /packages.

La actualización del script-mydebs

Es una simple línea de tres líneas:

#! /bin/bash
 cd /usr/local/mydebs
 dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

Corte y pegue lo anterior en gedit y guárdelo como update-mydebs en ~/bin. (la tilde '~' significa su directorio de inicio. Si ~/bin no existe, créelo: Ubuntu colocará ese directorio en su RUTA. Es un buen lugar para colocar scripts personales). A continuación, haga que el script sea ejecutable:

 chmod u+x ~/bin/update-mydebs

Cómo funciona el script: dpkg-scanpackages examina todos los paquetes en mydebs, y el resultado se comprime y se escribe en un archivo (Packages.gz) que apt-get update puede leer (consulte a continuación una referencia que explica esto con insoportable detalle). ). /dev/null es un archivo vacío; es un sustituto de un archivo de anulación que contiene información adicional sobre los paquetes, que en este caso no es realmente necesaria. Consulte deb-override(5) si desea obtener más información.

Lista de fuentes

agrega la linea

deb file:/usr/local/mydebs ./

a tu /etc/apt/sources.list y listo.

Opción CD

Puede grabar el directorio que contiene los debs en un CD y usarlo también como repositorio (bueno para compartir entre computadoras). Para utilizar el CD como repositorio, simplemente ejecute

sudo apt-cdrom add

Usando el repositorio

Siempre que coloques un nuevo deb en el directorio mydebs, ejecuta

sudo update-mydebs
sudo apt-get update

Ahora sus paquetes locales se pueden manipular con Synaptic, aptitude y los comandos apt: apt-get, apt-cache, etc. Cuando intente instalar apt-get, cualquier dependencia se resolverá por usted, siempre que se puedan cumplir. .

Los paquetes mal hechos probablemente fallarán, pero no habrás soportado el infierno de dpkg.

información relacionada